From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8931 invoked by alias); 11 May 2002 01:26:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 8878 invoked by uid 71); 11 May 2002 01:26:01 -0000 Resent-Date: 11 May 2002 01:26:01 -0000 Resent-Message-ID: <20020511012601.8877.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, gold@aros.net Received:(qmail 30248 invoked by uid 61); 11 May 2002 01:22:02 -0000 Message-Id:<20020511012202.30247.qmail@sources.redhat.com> Date: Fri, 10 May 2002 18:26:00 -0000 From: gold@aros.net Reply-To: gold@aros.net To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: optimization/6630: gcc-3.1 prerelease with -O3 generates invalid i386 code. X-SW-Source: 2002-05/txt/msg00310.txt.bz2 List-Id: >Number: 6630 >Category: optimization >Synopsis: gcc-3.1 prerelease with -O3 generates invalid i386 code. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Fri May 10 18:26:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Lawrence Gold >Release: gcc-3.1 (GCC) 3.1 20020509 (prerelease) >Organization: >Environment: Linux 2.4.18, Athlon Thunderbird 1.2GHz (stepping 6), binutils v2.12, gcc-3.1 built (make bootstrap) using gcc-2.95.3 with CFLAGS and CXXFLAGS unset. The problem also occurs if gcc-3.1 is built using gcc-3.0.4. >Description: Building the attached file from xmame-0.60.1 using -O3 -c produces these messages: /tmp/cch0HcgE.s: Assembler messages: /tmp/cch0HcgE.s:5613: Error: bad register name `%sil' /tmp/cch0HcgE.s:5742: Error: bad register name `%sil' /tmp/cch0HcgE.s:5858: Error: bad register name `%sil' /tmp/cch0HcgE.s:5993: Error: bad register name `%sil' /tmp/cch0HcgE.s:6230: Error: bad register name `%sil' >How-To-Repeat: >Fix: With -O2, the error does not occur. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="i8085-preprocessed.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="i8085-preprocessed.c" IyAxICJzcmMvY3B1L2k4MDg1L2k4MDg1LmMiCiMgMSAiPGJ1aWx0LWluPiIKIyAxICI8Y29tbWFu ZCBsaW5lPiIKIyAxICJzcmMvY3B1L2k4MDg1L2k4MDg1LmMiCiMgNTggInNyYy9jcHUvaTgwODUv aTgwODUuYyIKIyAxICJzcmMvZHJpdmVyLmgiIDEKIyA1MyAic3JjL2RyaXZlci5oIgojIDEgInNy Yy91bml4L29zZF9jcHUuaCIgMQojIDI3ICJzcmMvdW5peC9vc2RfY3B1LmgiCiMgMSAiL3Vzci9p bmNsdWRlL3RpbWUuaCIgMSAzCiMgMjggIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKIyAxICIvdXNy L2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMjgzICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIg MwojIDEgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAzCiMgMjg0ICIvdXNyL2luY2x1ZGUv ZmVhdHVyZXMuaCIgMiAzCiMgMzEyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwojIDEgIi91 c3IvaW5jbHVkZS9nbnUvc3R1YnMuaCIgMSAzCiMgMzEzICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMu aCIgMiAzCiMgMjkgIi91c3IvaW5jbHVkZS90aW1lLmgiIDIgMwoKCgoKCgoKCgojIDEgIi91c3Iv bG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9z dGRkZWYuaCIgMSAzCiMgMjAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1w Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiB1bnNpZ25lZCBpbnQg c2l6ZV90OwojIDM5ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMKCgoKIyAxICIvdXNyL2luY2x1 ZGUvYml0cy90aW1lLmgiIDEgMwojIDM5ICIvdXNyL2luY2x1ZGUvYml0cy90aW1lLmgiIDMKIyAx ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKIyAyOSAiL3Vzci9pbmNsdWRlL2JpdHMv dHlwZXMuaCIgMwojIDEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxp bnV4LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzAgIi91c3IvaW5jbHVkZS9iaXRz L3R5cGVzLmgiIDIgMwoKCnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VfY2hhcjsKdHlwZWRlZiB1 bnNpZ25lZCBzaG9ydCBfX3Vfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdV9pbnQ7CnR5 cGVkZWYgdW5zaWduZWQgbG9uZyBfX3VfbG9uZzsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNp Z25lZCBsb25nIGxvbmcgaW50IF9fdV9xdWFkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25n IGxvbmcgaW50IF9fcXVhZF90OwojIDQ5ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAzCnR5 cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VpbnQ4 X3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGludCBfX2ludDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQg c2hvcnQgaW50IF9fdWludDE2X3Q7CnR5cGVkZWYgc2lnbmVkIGludCBfX2ludDMyX3Q7CnR5cGVk ZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgc2lnbmVk IGxvbmcgbG9uZyBpbnQgX19pbnQ2NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQg bG9uZyBsb25nIGludCBfX3VpbnQ2NF90OwoKdHlwZWRlZiBfX3F1YWRfdCAqX19xYWRkcl90OwoK dHlwZWRlZiBfX3VfcXVhZF90IF9fZGV2X3Q7CnR5cGVkZWYgX191X2ludCBfX3VpZF90Owp0eXBl ZGVmIF9fdV9pbnQgX19naWRfdDsKdHlwZWRlZiBfX3VfbG9uZyBfX2lub190Owp0eXBlZGVmIF9f dV9pbnQgX19tb2RlX3Q7CnR5cGVkZWYgX191X2ludCBfX25saW5rX3Q7CnR5cGVkZWYgbG9uZyBp bnQgX19vZmZfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2xvZmZfdDsKdHlwZWRlZiBpbnQgX19waWRf dDsKdHlwZWRlZiBpbnQgX19zc2l6ZV90Owp0eXBlZGVmIF9fdV9sb25nIF9fcmxpbV90Owp0eXBl ZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKdHlwZWRlZiBfX3VfaW50IF9faWRfdDsKCnR5cGVk ZWYgc3RydWN0CiAgewogICAgaW50IF9fdmFsWzJdOwogIH0gX19mc2lkX3Q7CgoKdHlwZWRlZiBp bnQgX19kYWRkcl90Owp0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsKdHlwZWRlZiBsb25nIGludCBf X3RpbWVfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191c2Vjb25kc190Owp0eXBlZGVmIGxvbmcg aW50IF9fc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19zd2Jsa190OwoKdHlwZWRlZiBs b25nIGludCBfX2Nsb2NrX3Q7CgoKdHlwZWRlZiBpbnQgX19jbG9ja2lkX3Q7CgoKdHlwZWRlZiBp bnQgX190aW1lcl90OwoKCgoKCgp0eXBlZGVmIGludCBfX2tleV90OwoKCnR5cGVkZWYgdW5zaWdu ZWQgc2hvcnQgaW50IF9faXBjX3BpZF90OwoKCgp0eXBlZGVmIGxvbmcgaW50IF9fYmxrc2l6ZV90 OwoKCgoKdHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90Owp0eXBlZGVmIF9fcXVhZF90IF9fYmxr Y250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNibGtjbnRfdDsKdHlwZWRlZiBfX3VfcXVh ZF90IF9fZnNibGtjbnQ2NF90OwoKCnR5cGVkZWYgX191X2xvbmcgX19mc2ZpbGNudF90Owp0eXBl ZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7CgoKdHlwZWRlZiBfX3VfcXVhZF90IF9faW5v NjRfdDsKCgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRfdDsKCgp0eXBlZGVmIGxvbmcgaW50IF9f dF9zY2FsYXJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3RfdXNjYWxhcl90OwoKCnR5 cGVkZWYgaW50IF9faW50cHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19zb2NrbGVuX3Q7 CgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAxIDMKIyAyMyAiL3Vz ci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9z Y2hlZC5oIiAxIDMKIyA2OCAiL3Vzci9pbmNsdWRlL2JpdHMvc2NoZWQuaCIgMwpzdHJ1Y3QgX19z Y2hlZF9wYXJhbQogIHsKICAgIGludCBfX3NjaGVkX3ByaW9yaXR5OwogIH07CiMgMjQgIi91c3Iv aW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAyIDMKCgpzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxv Y2sKewogIGxvbmcgaW50IF9fc3RhdHVzOwogIGludCBfX3NwaW5sb2NrOwoKfTsKCgoKdHlwZWRl ZiBzdHJ1Y3QgX3B0aHJlYWRfZGVzY3Jfc3RydWN0ICpfcHRocmVhZF9kZXNjcjsKCgoKCgp0eXBl ZGVmIHN0cnVjdCBfX3B0aHJlYWRfYXR0cl9zCnsKICBpbnQgX19kZXRhY2hzdGF0ZTsKICBpbnQg X19zY2hlZHBvbGljeTsKICBzdHJ1Y3QgX19zY2hlZF9wYXJhbSBfX3NjaGVkcGFyYW07CiAgaW50 IF9faW5oZXJpdHNjaGVkOwogIGludCBfX3Njb3BlOwogIHNpemVfdCBfX2d1YXJkc2l6ZTsKICBp bnQgX19zdGFja2FkZHJfc2V0OwogIHZvaWQgKl9fc3RhY2thZGRyOwogIHNpemVfdCBfX3N0YWNr c2l6ZTsKfSBwdGhyZWFkX2F0dHJfdDsKCgoKdHlwZWRlZiBzdHJ1Y3QKewogIHN0cnVjdCBfcHRo cmVhZF9mYXN0bG9jayBfX2NfbG9jazsKICBfcHRocmVhZF9kZXNjciBfX2Nfd2FpdGluZzsKfSBw dGhyZWFkX2NvbmRfdDsKCgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX2R1bW15Owp9IHB0aHJl YWRfY29uZGF0dHJfdDsKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX2tleV90OwoKCgoK CnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19tX3Jlc2VydmVkOwogIGludCBfX21fY291bnQ7CiAg X3B0aHJlYWRfZGVzY3IgX19tX293bmVyOwogIGludCBfX21fa2luZDsKICBzdHJ1Y3QgX3B0aHJl YWRfZmFzdGxvY2sgX19tX2xvY2s7Cn0gcHRocmVhZF9tdXRleF90OwoKCgp0eXBlZGVmIHN0cnVj dAp7CiAgaW50IF9fbXV0ZXhraW5kOwp9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7CgoKCnR5cGVkZWYg aW50IHB0aHJlYWRfb25jZV90OwojIDE0MCAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVz LmgiIDMKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBwdGhyZWFkX3Q7CiMgMTQ0ICIvdXNyL2lu Y2x1ZGUvYml0cy90eXBlcy5oIiAyIDMKIyA0MCAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAy IDMKZXh0ZXJuIGxvbmcgaW50IF9fc3lzY29uZiAoaW50KTsKIyA0MyAiL3Vzci9pbmNsdWRlL3Rp bWUuaCIgMiAzCiMgNTkgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKdHlwZWRlZiBfX2Nsb2NrX3Qg Y2xvY2tfdDsKIyA3MCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwp0eXBlZGVmIF9fdGltZV90IHRp bWVfdDsKIyA4MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwp0eXBlZGVmIF9fY2xvY2tpZF90IGNs b2NraWRfdDsKIyA5NCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwp0eXBlZGVmIF9fdGltZXJfdCB0 aW1lcl90OwojIDEwNiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwpzdHJ1Y3QgdGltZXNwZWMKICB7 CiAgICBfX3RpbWVfdCB0dl9zZWM7CiAgICBsb25nIGludCB0dl9uc2VjOwogIH07CgoKCgoKCgpz dHJ1Y3QgdG0KewogIGludCB0bV9zZWM7CiAgaW50IHRtX21pbjsKICBpbnQgdG1faG91cjsKICBp bnQgdG1fbWRheTsKICBpbnQgdG1fbW9uOwogIGludCB0bV95ZWFyOwogIGludCB0bV93ZGF5Owog IGludCB0bV95ZGF5OwogIGludCB0bV9pc2RzdDsKCgogIGxvbmcgaW50IHRtX2dtdG9mZjsKICBf X2NvbnN0IGNoYXIgKnRtX3pvbmU7CgoKCgp9OwoKCgoKc3RydWN0IGl0aW1lcnNwZWMKICB7CiAg ICBzdHJ1Y3QgdGltZXNwZWMgaXRfaW50ZXJ2YWw7CiAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFs dWU7CiAgfTsKCgpzdHJ1Y3Qgc2lnZXZlbnQ7CiMgMTYzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAz CmV4dGVybiBjbG9ja190IGNsb2NrICh2b2lkKSA7CgoKZXh0ZXJuIHRpbWVfdCB0aW1lICh0aW1l X3QgKl9fdGltZXIpIDsKCgpleHRlcm4gZG91YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwg dGltZV90IF9fdGltZTApCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVy biB0aW1lX3QgbWt0aW1lIChzdHJ1Y3QgdG0gKl9fdHApIDsKCgoKCgpleHRlcm4gc2l6ZV90IHN0 cmZ0aW1lIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4c2l6ZSwKICAgICAgICAg ICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAogICAgICAg ICAgICAgICAgICAgICAgICBfX2NvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CiMg MTk0ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzCmV4dGVybiBzdHJ1Y3QgdG0gKmdtdGltZSAoX19j b25zdCB0aW1lX3QgKl9fdGltZXIpIDsKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChf X2NvbnN0IHRpbWVfdCAqX190aW1lcikgOwoKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lX3Ig KF9fY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX190cCkgOwoKCgpleHRlcm4gc3RydWN0IHRt ICpsb2NhbHRpbWVfciAoX19jb25zdCB0aW1lX3QgKl9fcmVzdHJpY3QgX190aW1lciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CgoK CgpleHRlcm4gY2hhciAqYXNjdGltZSAoX19jb25zdCBzdHJ1Y3QgdG0gKl9fdHApIDsKCgpleHRl cm4gY2hhciAqY3RpbWUgKF9fY29uc3QgdGltZV90ICpfX3RpbWVyKSA7CgoKCgoKCmV4dGVybiBj aGFyICphc2N0aW1lX3IgKF9fY29uc3Qgc3RydWN0IHRtICpfX3Jlc3RyaWN0IF9fdHAsCiAgICAg ICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgpleHRlcm4gY2hh ciAqY3RpbWVfciAoX19jb25zdCB0aW1lX3QgKl9fcmVzdHJpY3QgX190aW1lciwKICAgICAgICAg ICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgoKCmV4dGVybiBjaGFyICpf X3R6bmFtZVsyXTsKZXh0ZXJuIGludCBfX2RheWxpZ2h0OwpleHRlcm4gbG9uZyBpbnQgX190aW1l em9uZTsKCgoKCmV4dGVybiBjaGFyICp0em5hbWVbMl07CgoKCmV4dGVybiB2b2lkIHR6c2V0ICh2 b2lkKSA7CgoKCmV4dGVybiBpbnQgZGF5bGlnaHQ7CmV4dGVybiBsb25nIGludCB0aW1lem9uZTsK CgoKCgpleHRlcm4gaW50IHN0aW1lIChfX2NvbnN0IHRpbWVfdCAqX193aGVuKSA7CiMgMjcxICIv dXNyL2luY2x1ZGUvdGltZS5oIiAzCmV4dGVybiB0aW1lX3QgdGltZWdtIChzdHJ1Y3QgdG0gKl9f dHApIDsKCgpleHRlcm4gdGltZV90IHRpbWVsb2NhbCAoc3RydWN0IHRtICpfX3RwKSA7CgoKZXh0 ZXJuIGludCBkeXNpemUgKGludCBfX3llYXIpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK CgoKCgpleHRlcm4gaW50IG5hbm9zbGVlcCAoX19jb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVx dWVzdGVkX3RpbWUsCiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVt YWluaW5nKSA7CgoKCmV4dGVybiBpbnQgY2xvY2tfZ2V0cmVzIChjbG9ja2lkX3QgX19jbG9ja19p ZCwgc3RydWN0IHRpbWVzcGVjICpfX3JlcykgOwoKCmV4dGVybiBpbnQgY2xvY2tfZ2V0dGltZSAo Y2xvY2tpZF90IF9fY2xvY2tfaWQsIHN0cnVjdCB0aW1lc3BlYyAqX190cCkgOwoKCmV4dGVybiBp bnQgY2xvY2tfc2V0dGltZSAoY2xvY2tpZF90IF9fY2xvY2tfaWQsIF9fY29uc3Qgc3RydWN0IHRp bWVzcGVjICpfX3RwKQogICAgIDsKIyAzMDkgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKZXh0ZXJu IGludCB0aW1lcl9jcmVhdGUgKGNsb2NraWRfdCBfX2Nsb2NrX2lkLAogICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHNpZ2V2ZW50ICpfX3Jlc3RyaWN0IF9fZXZwLAogICAgICAgICAgICAg ICAgICAgICAgICAgdGltZXJfdCAqX19yZXN0cmljdCBfX3RpbWVyaWQpIDsKCgpleHRlcm4gaW50 IHRpbWVyX2RlbGV0ZSAodGltZXJfdCBfX3RpbWVyaWQpIDsKCgpleHRlcm4gaW50IHRpbWVyX3Nl dHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBpbnQgX19mbGFncywKICAgICAgICAgICAgICAgICAg ICAgICAgICBfX2NvbnN0IHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fdmFsdWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGl0aW1lcnNwZWMgKl9fcmVzdHJpY3QgX19v dmFsdWUpIDsKCgpleHRlcm4gaW50IHRpbWVyX2dldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBz dHJ1Y3QgaXRpbWVyc3BlYyAqX192YWx1ZSkKICAgICA7CgoKZXh0ZXJuIGludCB0aW1lcl9nZXRv dmVycnVuICh0aW1lcl90IF9fdGltZXJpZCkgOwojIDM2MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIg MwoKIyAyOCAic3JjL3VuaXgvb3NkX2NwdS5oIiAyCiMgNDMgInNyYy91bml4L29zZF9jcHUuaCIK dHlwZWRlZiBzaWduZWQgY2hhciBJTlQ4Owp0eXBlZGVmIHNpZ25lZCBzaG9ydCBJTlQxNjsKdHlw ZWRlZiBzaWduZWQgaW50IElOVDMyOwp0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgSU5UNjQ7Cgp0 eXBlZGVmIHVuc2lnbmVkIGNoYXIgVUlOVDg7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgVUlOVDE2 Owp0eXBlZGVmIHVuc2lnbmVkIGludCBVSU5UMzI7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n IFVJTlQ2NDsKIyA4MSAic3JjL3VuaXgvb3NkX2NwdS5oIgp0eXBlZGVmIHVuaW9uIHsKCiAgICAg ICAgc3RydWN0IHsgVUlOVDggbCxoLGgyLGgzOyB9IGI7CiAgICAgICAgc3RydWN0IHsgVUlOVDE2 IGwsaDsgfSB3OwoKCgoKICAgICAgICBVSU5UMzIgZDsKfSBQQUlSOwojIDU0ICJzcmMvZHJpdmVy LmgiIDIKIyAxICJzcmMvbWVtb3J5LmgiIDEKIyAxMyAic3JjL21lbW9yeS5oIgojIDEgIi91c3Iv bG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9z dGRkZWYuaCIgMSAzCiMgMTQ3ICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1w Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiBpbnQgcHRyZGlmZl90 OwojIDI5NCAiL3Vzci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251 LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5cGVkZWYgbG9uZyBpbnQgd2NoYXJfdDsKIyAxNCAi c3JjL21lbW9yeS5oIiAyCiMgNDYgInNyYy9tZW1vcnkuaCIKdHlwZWRlZiBVSU5UOCBkYXRhOF90 Owp0eXBlZGVmIFVJTlQxNiBkYXRhMTZfdDsKdHlwZWRlZiBVSU5UMzIgZGF0YTMyX3Q7CnR5cGVk ZWYgVUlOVDMyIG9mZnNfdDsKCgp0eXBlZGVmIGRhdGE4X3QgKCpyZWFkOF9oYW5kbGVyKSAoX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp0eXBlZGVmIHZvaWQgKCp3 cml0ZThfaGFuZGxlcikgKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdHlwZWRlZiBkYXRh MTZfdCAoKnJlYWQxNl9oYW5kbGVyKSAoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7 CnR5cGVkZWYgdm9pZCAoKndyaXRlMTZfaGFuZGxlcikoX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBk YXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp0eXBl ZGVmIGRhdGEzMl90ICgqcmVhZDMyX2hhbmRsZXIpIChfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEzMl90IG1l bV9tYXNrKTsKdHlwZWRlZiB2b2lkICgqd3JpdGUzMl9oYW5kbGVyKShfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGEzMl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMzJfdCBtZW1fbWFz ayk7CnR5cGVkZWYgb2Zmc190ICgqb3BiYXNlX2hhbmRsZXIpIChfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IGFkZHJlc3MpOwoKCnR5cGVkZWYgcmVhZDhfaGFuZGxlciBtZW1fcmVh ZF9oYW5kbGVyOwp0eXBlZGVmIHdyaXRlOF9oYW5kbGVyIG1lbV93cml0ZV9oYW5kbGVyOwp0eXBl ZGVmIHJlYWQxNl9oYW5kbGVyIG1lbV9yZWFkMTZfaGFuZGxlcjsKdHlwZWRlZiB3cml0ZTE2X2hh bmRsZXIgbWVtX3dyaXRlMTZfaGFuZGxlcjsKdHlwZWRlZiByZWFkMzJfaGFuZGxlciBtZW1fcmVh ZDMyX2hhbmRsZXI7CnR5cGVkZWYgd3JpdGUzMl9oYW5kbGVyIG1lbV93cml0ZTMyX2hhbmRsZXI7 CgoKdHlwZWRlZiByZWFkOF9oYW5kbGVyIHBvcnRfcmVhZF9oYW5kbGVyOwp0eXBlZGVmIHdyaXRl OF9oYW5kbGVyIHBvcnRfd3JpdGVfaGFuZGxlcjsKdHlwZWRlZiByZWFkMTZfaGFuZGxlciBwb3J0 X3JlYWQxNl9oYW5kbGVyOwp0eXBlZGVmIHdyaXRlMTZfaGFuZGxlciBwb3J0X3dyaXRlMTZfaGFu ZGxlcjsKdHlwZWRlZiByZWFkMzJfaGFuZGxlciBwb3J0X3JlYWQzMl9oYW5kbGVyOwp0eXBlZGVm IHdyaXRlMzJfaGFuZGxlciBwb3J0X3dyaXRlMzJfaGFuZGxlcjsKCgpzdHJ1Y3QgRXh0TWVtb3J5 CnsKICAgICAgICBvZmZzX3Qgc3RhcnQsIGVuZDsKICAgICAgICBVSU5UOCByZWdpb247CiAgICBV SU5UOCAqIGRhdGE7Cn07CiMgNDI1ICJzcmMvbWVtb3J5LmgiCnN0cnVjdCBNZW1vcnlfUmVhZEFk ZHJlc3MKewogICAgICAgIG9mZnNfdCBzdGFydCwgZW5kOwogICAgICAgIG1lbV9yZWFkX2hhbmRs ZXIgaGFuZGxlcjsKfTsKCnN0cnVjdCBNZW1vcnlfUmVhZEFkZHJlc3MxNgp7CiAgICAgICAgb2Zm c190IHN0YXJ0LCBlbmQ7CiAgICAgICAgbWVtX3JlYWQxNl9oYW5kbGVyIGhhbmRsZXI7Cn07Cgpz dHJ1Y3QgTWVtb3J5X1JlYWRBZGRyZXNzMzIKewogICAgICAgIG9mZnNfdCBzdGFydCwgZW5kOwog ICAgICAgIG1lbV9yZWFkMzJfaGFuZGxlciBoYW5kbGVyOwp9OwoKCnN0cnVjdCBNZW1vcnlfV3Jp dGVBZGRyZXNzCnsKICAgIG9mZnNfdCBzdGFydCwgZW5kOwogICAgICAgIG1lbV93cml0ZV9oYW5k bGVyIGhhbmRsZXI7CiAgICAgICAgZGF0YThfdCAqKiBiYXNlOwogICAgc2l6ZV90ICogc2l6ZTsK fTsKCnN0cnVjdCBNZW1vcnlfV3JpdGVBZGRyZXNzMTYKewogICAgb2Zmc190IHN0YXJ0LCBlbmQ7 CiAgICAgICAgbWVtX3dyaXRlMTZfaGFuZGxlciBoYW5kbGVyOwogICAgICAgIGRhdGExNl90ICoq IGJhc2U7CiAgICBzaXplX3QgKiBzaXplOwp9OwoKc3RydWN0IE1lbW9yeV9Xcml0ZUFkZHJlc3Mz Mgp7CiAgICBvZmZzX3Qgc3RhcnQsIGVuZDsKICAgICAgICBtZW1fd3JpdGUzMl9oYW5kbGVyIGhh bmRsZXI7CiAgICAgICAgZGF0YTMyX3QgKiogYmFzZTsKICAgICAgICBzaXplX3QgKiBzaXplOwp9 OwoKCnN0cnVjdCBJT19SZWFkUG9ydAp7CiAgICAgICAgb2Zmc190IHN0YXJ0LCBlbmQ7CiAgICAg ICAgcG9ydF9yZWFkX2hhbmRsZXIgaGFuZGxlcjsKfTsKCnN0cnVjdCBJT19SZWFkUG9ydDE2CnsK ICAgICAgICBvZmZzX3Qgc3RhcnQsIGVuZDsKICAgICAgICBwb3J0X3JlYWQxNl9oYW5kbGVyIGhh bmRsZXI7Cn07CgpzdHJ1Y3QgSU9fUmVhZFBvcnQzMgp7CiAgICAgICAgb2Zmc190IHN0YXJ0LCBl bmQ7CiAgICAgICAgcG9ydF9yZWFkMzJfaGFuZGxlciBoYW5kbGVyOwp9OwoKCnN0cnVjdCBJT19X cml0ZVBvcnQKewogICAgICAgIG9mZnNfdCBzdGFydCwgZW5kOwogICAgICAgIHBvcnRfd3JpdGVf aGFuZGxlciBoYW5kbGVyOwp9OwoKc3RydWN0IElPX1dyaXRlUG9ydDE2CnsKICAgICAgICBvZmZz X3Qgc3RhcnQsIGVuZDsKICAgICAgICBwb3J0X3dyaXRlMTZfaGFuZGxlciBoYW5kbGVyOwp9OwoK c3RydWN0IElPX1dyaXRlUG9ydDMyCnsKICAgICAgICBvZmZzX3Qgc3RhcnQsIGVuZDsKICAgICAg ICBwb3J0X3dyaXRlMzJfaGFuZGxlciBoYW5kbGVyOwp9OwojIDY4NiAic3JjL21lbW9yeS5oIgpk YXRhOF90IGNwdV9yZWFkbWVtMTYgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTE2 IChvZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UxNiAob2Zm c190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1lbTE3IChvZmZzX3Qgb2Zmc2V0KTsgdm9pZCBjcHVf d3JpdGVtZW0xNyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfc2V0b3Bi YXNlMTcgKG9mZnNfdCBwYyk7CmRhdGE4X3QgY3B1X3JlYWRtZW0yMCAob2Zmc190IG9mZnNldCk7 IHZvaWQgY3B1X3dyaXRlbWVtMjAgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7IHZvaWQg Y3B1X3NldG9wYmFzZTIwIChvZmZzX3QgcGMpOwpkYXRhOF90IGNwdV9yZWFkbWVtMjEgKG9mZnNf dCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTIxIChvZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRh dGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UyMSAob2Zmc190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1l bTI0IChvZmZzX3Qgb2Zmc2V0KTsgdm9pZCBjcHVfd3JpdGVtZW0yNCAob2Zmc190IG9mZnNldCwg ZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfc2V0b3BiYXNlMjQgKG9mZnNfdCBwYyk7CgoKCgoKCgpk YXRhOF90IGNwdV9yZWFkbWVtMTZiZXcgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMTZfdCBjcHVfcmVh ZG1lbTE2YmV3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTE2YmV3IChv ZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTE2YmV3X3dvcmQg KG9mZnNfdCBvZmZzZXQsIGRhdGExNl90IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UxNmJldyAo b2Zmc190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1lbTI0YmV3IChvZmZzX3Qgb2Zmc2V0KTsgZGF0 YTE2X3QgY3B1X3JlYWRtZW0yNGJld193b3JkIChvZmZzX3Qgb2Zmc2V0KTsgdm9pZCBjcHVfd3Jp dGVtZW0yNGJldyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVt ZW0yNGJld193b3JkIChvZmZzX3Qgb2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfc2V0 b3BiYXNlMjRiZXcgKG9mZnNfdCBwYyk7CmRhdGE4X3QgY3B1X3JlYWRtZW0zMmJldyAob2Zmc190 IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkbWVtMzJiZXdfd29yZCAob2Zmc190IG9mZnNldCk7 IHZvaWQgY3B1X3dyaXRlbWVtMzJiZXcgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7IHZv aWQgY3B1X3dyaXRlbWVtMzJiZXdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0YSk7 IHZvaWQgY3B1X3NldG9wYmFzZTMyYmV3IChvZmZzX3QgcGMpOwoKCgoKCmRhdGE4X3QgY3B1X3Jl YWRtZW0xNmxldyAob2Zmc190IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkbWVtMTZsZXdfd29y ZCAob2Zmc190IG9mZnNldCk7IHZvaWQgY3B1X3dyaXRlbWVtMTZsZXcgKG9mZnNfdCBvZmZzZXQs IGRhdGE4X3QgZGF0YSk7IHZvaWQgY3B1X3dyaXRlbWVtMTZsZXdfd29yZCAob2Zmc190IG9mZnNl dCwgZGF0YTE2X3QgZGF0YSk7IHZvaWQgY3B1X3NldG9wYmFzZTE2bGV3IChvZmZzX3QgcGMpOwpk YXRhOF90IGNwdV9yZWFkbWVtMTdsZXcgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMTZfdCBjcHVfcmVh ZG1lbTE3bGV3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTE3bGV3IChv ZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTE3bGV3X3dvcmQg KG9mZnNfdCBvZmZzZXQsIGRhdGExNl90IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UxN2xldyAo b2Zmc190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1lbTI0bGV3IChvZmZzX3Qgb2Zmc2V0KTsgZGF0 YTE2X3QgY3B1X3JlYWRtZW0yNGxld193b3JkIChvZmZzX3Qgb2Zmc2V0KTsgdm9pZCBjcHVfd3Jp dGVtZW0yNGxldyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVt ZW0yNGxld193b3JkIChvZmZzX3Qgb2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfc2V0 b3BiYXNlMjRsZXcgKG9mZnNfdCBwYyk7CmRhdGE4X3QgY3B1X3JlYWRtZW0yOWxldyAob2Zmc190 IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkbWVtMjlsZXdfd29yZCAob2Zmc190IG9mZnNldCk7 IHZvaWQgY3B1X3dyaXRlbWVtMjlsZXcgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7IHZv aWQgY3B1X3dyaXRlbWVtMjlsZXdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0YSk7 IHZvaWQgY3B1X3NldG9wYmFzZTI5bGV3IChvZmZzX3QgcGMpOwpkYXRhOF90IGNwdV9yZWFkbWVt MzJsZXcgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMTZfdCBjcHVfcmVhZG1lbTMybGV3X3dvcmQgKG9m ZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTMybGV3IChvZmZzX3Qgb2Zmc2V0LCBkYXRh OF90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTMybGV3X3dvcmQgKG9mZnNfdCBvZmZzZXQsIGRh dGExNl90IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UzMmxldyAob2Zmc190IHBjKTsKCgoKCgoK CmRhdGE4X3QgY3B1X3JlYWRtZW0yNGJlZHcgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMTZfdCBjcHVf cmVhZG1lbTI0YmVkd193b3JkIChvZmZzX3Qgb2Zmc2V0KTsgZGF0YTMyX3QgY3B1X3JlYWRtZW0y NGJlZHdfZHdvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZW1lbTI0YmVkdyAob2Zm c190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVtZW0yNGJlZHdfd29yZCAo b2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0YSk7IHZvaWQgY3B1X3dyaXRlbWVtMjRiZWR3X2R3 b3JkKG9mZnNfdCBvZmZzZXQsIGRhdGEzMl90IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UyNGJl ZHcgKG9mZnNfdCBwYyk7CmRhdGE4X3QgY3B1X3JlYWRtZW0yOWJlZHcgKG9mZnNfdCBvZmZzZXQp OyBkYXRhMTZfdCBjcHVfcmVhZG1lbTI5YmVkd193b3JkIChvZmZzX3Qgb2Zmc2V0KTsgZGF0YTMy X3QgY3B1X3JlYWRtZW0yOWJlZHdfZHdvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0 ZW1lbTI5YmVkdyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVt ZW0yOWJlZHdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0YSk7IHZvaWQgY3B1X3dy aXRlbWVtMjliZWR3X2R3b3JkKG9mZnNfdCBvZmZzZXQsIGRhdGEzMl90IGRhdGEpOyB2b2lkIGNw dV9zZXRvcGJhc2UyOWJlZHcgKG9mZnNfdCBwYyk7CmRhdGE4X3QgY3B1X3JlYWRtZW0zMmJlZHcg KG9mZnNfdCBvZmZzZXQpOyBkYXRhMTZfdCBjcHVfcmVhZG1lbTMyYmVkd193b3JkIChvZmZzX3Qg b2Zmc2V0KTsgZGF0YTMyX3QgY3B1X3JlYWRtZW0zMmJlZHdfZHdvcmQgKG9mZnNfdCBvZmZzZXQp OyB2b2lkIGNwdV93cml0ZW1lbTMyYmVkdyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsg dm9pZCBjcHVfd3JpdGVtZW0zMmJlZHdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0 YSk7IHZvaWQgY3B1X3dyaXRlbWVtMzJiZWR3X2R3b3JkKG9mZnNfdCBvZmZzZXQsIGRhdGEzMl90 IGRhdGEpOyB2b2lkIGNwdV9zZXRvcGJhc2UzMmJlZHcgKG9mZnNfdCBwYyk7CgoKCgoKZGF0YThf dCBjcHVfcmVhZG1lbTI2bGVkdyAob2Zmc190IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkbWVt MjZsZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMzJfdCBjcHVfcmVhZG1lbTI2bGVkd19k d29yZCAob2Zmc190IG9mZnNldCk7IHZvaWQgY3B1X3dyaXRlbWVtMjZsZWR3IChvZmZzX3Qgb2Zm c2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTI2bGVkd193b3JkIChvZmZzX3Qg b2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVtZW0yNmxlZHdfZHdvcmQob2Zm c190IG9mZnNldCwgZGF0YTMyX3QgZGF0YSk7IHZvaWQgY3B1X3NldG9wYmFzZTI2bGVkdyAob2Zm c190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1lbTI5bGVkdyAob2Zmc190IG9mZnNldCk7IGRhdGEx Nl90IGNwdV9yZWFkbWVtMjlsZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMzJfdCBjcHVf cmVhZG1lbTI5bGVkd19kd29yZCAob2Zmc190IG9mZnNldCk7IHZvaWQgY3B1X3dyaXRlbWVtMjls ZWR3IChvZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTI5bGVk d193b3JkIChvZmZzX3Qgb2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVtZW0y OWxlZHdfZHdvcmQob2Zmc190IG9mZnNldCwgZGF0YTMyX3QgZGF0YSk7IHZvaWQgY3B1X3NldG9w YmFzZTI5bGVkdyAob2Zmc190IHBjKTsKZGF0YThfdCBjcHVfcmVhZG1lbTMybGVkdyAob2Zmc190 IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkbWVtMzJsZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQp OyBkYXRhMzJfdCBjcHVfcmVhZG1lbTMybGVkd19kd29yZCAob2Zmc190IG9mZnNldCk7IHZvaWQg Y3B1X3dyaXRlbWVtMzJsZWR3IChvZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEpOyB2b2lkIGNw dV93cml0ZW1lbTMybGVkd193b3JkIChvZmZzX3Qgb2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9p ZCBjcHVfd3JpdGVtZW0zMmxlZHdfZHdvcmQob2Zmc190IG9mZnNldCwgZGF0YTMyX3QgZGF0YSk7 IHZvaWQgY3B1X3NldG9wYmFzZTMybGVkdyAob2Zmc190IHBjKTsKCgoKCgpkYXRhOF90IGNwdV9y ZWFkbWVtMThiZWR3IChvZmZzX3Qgb2Zmc2V0KTsgZGF0YTE2X3QgY3B1X3JlYWRtZW0xOGJlZHdf d29yZCAob2Zmc190IG9mZnNldCk7IGRhdGEzMl90IGNwdV9yZWFkbWVtMThiZWR3X2R3b3JkIChv ZmZzX3Qgb2Zmc2V0KTsgdm9pZCBjcHVfd3JpdGVtZW0xOGJlZHcgKG9mZnNfdCBvZmZzZXQsIGRh dGE4X3QgZGF0YSk7IHZvaWQgY3B1X3dyaXRlbWVtMThiZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQs IGRhdGExNl90IGRhdGEpOyB2b2lkIGNwdV93cml0ZW1lbTE4YmVkd19kd29yZChvZmZzX3Qgb2Zm c2V0LCBkYXRhMzJfdCBkYXRhKTsgdm9pZCBjcHVfc2V0b3BiYXNlMThiZWR3IChvZmZzX3QgcGMp OwojIDc0NSAic3JjL21lbW9yeS5oIgpkYXRhOF90IGNwdV9yZWFkcG9ydDE2IChvZmZzX3Qgb2Zm c2V0KTsgdm9pZCBjcHVfd3JpdGVwb3J0MTYgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7 CgoKZGF0YThfdCBjcHVfcmVhZHBvcnQxNmJldyAob2Zmc190IG9mZnNldCk7IGRhdGExNl90IGNw dV9yZWFkcG9ydDE2YmV3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZXBvcnQx NmJldyAob2Zmc190IG9mZnNldCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVwb3J0MTZi ZXdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3QgZGF0YSk7CgoKZGF0YThfdCBjcHVfcmVh ZHBvcnQxNmxldyAob2Zmc190IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkcG9ydDE2bGV3X3dv cmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZXBvcnQxNmxldyAob2Zmc190IG9mZnNl dCwgZGF0YThfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVwb3J0MTZsZXdfd29yZCAob2Zmc190IG9m ZnNldCwgZGF0YTE2X3QgZGF0YSk7CmRhdGE4X3QgY3B1X3JlYWRwb3J0MjRsZXcgKG9mZnNfdCBv ZmZzZXQpOyBkYXRhMTZfdCBjcHVfcmVhZHBvcnQyNGxld193b3JkIChvZmZzX3Qgb2Zmc2V0KTsg dm9pZCBjcHVfd3JpdGVwb3J0MjRsZXcgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7IHZv aWQgY3B1X3dyaXRlcG9ydDI0bGV3X3dvcmQgKG9mZnNfdCBvZmZzZXQsIGRhdGExNl90IGRhdGEp OwoKCmRhdGE4X3QgY3B1X3JlYWRwb3J0MTZiZWR3IChvZmZzX3Qgb2Zmc2V0KTsgZGF0YTE2X3Qg Y3B1X3JlYWRwb3J0MTZiZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMzJfdCBjcHVfcmVh ZHBvcnQxNmJlZHdfZHdvcmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZXBvcnQxNmJl ZHcgKG9mZnNfdCBvZmZzZXQsIGRhdGE4X3QgZGF0YSk7IHZvaWQgY3B1X3dyaXRlcG9ydDE2YmVk d193b3JkIChvZmZzX3Qgb2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVwb3J0 MTZiZWR3X2R3b3JkKG9mZnNfdCBvZmZzZXQsIGRhdGEzMl90IGRhdGEpOwoKCmRhdGE4X3QgY3B1 X3JlYWRwb3J0MTZsZWR3IChvZmZzX3Qgb2Zmc2V0KTsgZGF0YTE2X3QgY3B1X3JlYWRwb3J0MTZs ZWR3X3dvcmQgKG9mZnNfdCBvZmZzZXQpOyBkYXRhMzJfdCBjcHVfcmVhZHBvcnQxNmxlZHdfZHdv cmQgKG9mZnNfdCBvZmZzZXQpOyB2b2lkIGNwdV93cml0ZXBvcnQxNmxlZHcgKG9mZnNfdCBvZmZz ZXQsIGRhdGE4X3QgZGF0YSk7IHZvaWQgY3B1X3dyaXRlcG9ydDE2bGVkd193b3JkIChvZmZzX3Qg b2Zmc2V0LCBkYXRhMTZfdCBkYXRhKTsgdm9pZCBjcHVfd3JpdGVwb3J0MTZsZWR3X2R3b3JkKG9m ZnNfdCBvZmZzZXQsIGRhdGEzMl90IGRhdGEpOwpkYXRhOF90IGNwdV9yZWFkcG9ydDI0bGVkdyAo b2Zmc190IG9mZnNldCk7IGRhdGExNl90IGNwdV9yZWFkcG9ydDI0bGVkd193b3JkIChvZmZzX3Qg b2Zmc2V0KTsgZGF0YTMyX3QgY3B1X3JlYWRwb3J0MjRsZWR3X2R3b3JkIChvZmZzX3Qgb2Zmc2V0 KTsgdm9pZCBjcHVfd3JpdGVwb3J0MjRsZWR3IChvZmZzX3Qgb2Zmc2V0LCBkYXRhOF90IGRhdGEp OyB2b2lkIGNwdV93cml0ZXBvcnQyNGxlZHdfd29yZCAob2Zmc190IG9mZnNldCwgZGF0YTE2X3Qg ZGF0YSk7IHZvaWQgY3B1X3dyaXRlcG9ydDI0bGVkd19kd29yZChvZmZzX3Qgb2Zmc2V0LCBkYXRh MzJfdCBkYXRhKTsKIyA3NjkgInNyYy9tZW1vcnkuaCIKaW50IG1lbW9yeV9pbml0KHZvaWQpOwp2 b2lkIG1lbW9yeV9zaHV0ZG93bih2b2lkKTsKdm9pZCBtZW1vcnlfc2V0X2NvbnRleHQoaW50IGFj dGl2ZWNwdSk7CnZvaWQgbWVtb3J5X3NldF91bm1hcF92YWx1ZShkYXRhMzJfdCB2YWx1ZSk7CgoK dm9pZCBtZW1vcnlfc2V0X2JhbmtoYW5kbGVyX3IoaW50IGJhbmssIG9mZnNfdCBvZmZzZXQsIG1l bV9yZWFkX2hhbmRsZXIgaGFuZGxlcik7CnZvaWQgbWVtb3J5X3NldF9iYW5raGFuZGxlcl93KGlu dCBiYW5rLCBvZmZzX3Qgb2Zmc2V0LCBtZW1fd3JpdGVfaGFuZGxlciBoYW5kbGVyKTsKCgpvcGJh c2VfaGFuZGxlciBtZW1vcnlfc2V0X29wYmFzZV9oYW5kbGVyKGludCBjcHVudW0sIG9wYmFzZV9o YW5kbGVyIGZ1bmN0aW9uKTsKCgp2b2lkIG1lbW9yeV9zZXRfb3Bjb2RlX2Jhc2UoaW50IGNwdW51 bSwgdm9pZCAqYmFzZSk7CnZvaWQgbWVtb3J5X3NldF9lbmNyeXB0ZWRfb3Bjb2RlX3JhbmdlKGlu dCBjcHVudW0sIG9mZnNfdCBtaW5fYWRkcmVzcyxvZmZzX3QgbWF4X2FkZHJlc3MpOwpleHRlcm4g b2Zmc190IGVuY3J5cHRlZF9vcGNvZGVfc3RhcnRbXSxlbmNyeXB0ZWRfb3Bjb2RlX2VuZFtdOwoK CnZvaWQgKiBtZW1vcnlfZmluZF9iYXNlKGludCBjcHVudW0sIG9mZnNfdCBvZmZzZXQpOwoKCmRh dGE4X3QgKiBpbnN0YWxsX21lbV9yZWFkX2hhbmRsZXIgKGludCBjcHVudW0sIG9mZnNfdCBzdGFy dCwgb2Zmc190IGVuZCwgbWVtX3JlYWRfaGFuZGxlciBoYW5kbGVyKTsKZGF0YTE2X3QgKiBpbnN0 YWxsX21lbV9yZWFkMTZfaGFuZGxlciAoaW50IGNwdW51bSwgb2Zmc190IHN0YXJ0LCBvZmZzX3Qg ZW5kLCBtZW1fcmVhZDE2X2hhbmRsZXIgaGFuZGxlcik7CmRhdGEzMl90ICogaW5zdGFsbF9tZW1f cmVhZDMyX2hhbmRsZXIgKGludCBjcHVudW0sIG9mZnNfdCBzdGFydCwgb2Zmc190IGVuZCwgbWVt X3JlYWQzMl9oYW5kbGVyIGhhbmRsZXIpOwpkYXRhOF90ICogaW5zdGFsbF9tZW1fd3JpdGVfaGFu ZGxlciAoaW50IGNwdW51bSwgb2Zmc190IHN0YXJ0LCBvZmZzX3QgZW5kLCBtZW1fd3JpdGVfaGFu ZGxlciBoYW5kbGVyKTsKZGF0YTE2X3QgKiBpbnN0YWxsX21lbV93cml0ZTE2X2hhbmRsZXIgKGlu dCBjcHVudW0sIG9mZnNfdCBzdGFydCwgb2Zmc190IGVuZCwgbWVtX3dyaXRlMTZfaGFuZGxlciBo YW5kbGVyKTsKZGF0YTMyX3QgKiBpbnN0YWxsX21lbV93cml0ZTMyX2hhbmRsZXIgKGludCBjcHVu dW0sIG9mZnNfdCBzdGFydCwgb2Zmc190IGVuZCwgbWVtX3dyaXRlMzJfaGFuZGxlciBoYW5kbGVy KTsKCgp2b2lkIGluc3RhbGxfcG9ydF9yZWFkX2hhbmRsZXIgKGludCBjcHVudW0sIG9mZnNfdCBz dGFydCwgb2Zmc190IGVuZCwgcG9ydF9yZWFkX2hhbmRsZXIgaGFuZGxlcik7CnZvaWQgaW5zdGFs bF9wb3J0X3JlYWQxNl9oYW5kbGVyIChpbnQgY3B1bnVtLCBvZmZzX3Qgc3RhcnQsIG9mZnNfdCBl bmQsIHBvcnRfcmVhZDE2X2hhbmRsZXIgaGFuZGxlcik7CnZvaWQgaW5zdGFsbF9wb3J0X3JlYWQz Ml9oYW5kbGVyIChpbnQgY3B1bnVtLCBvZmZzX3Qgc3RhcnQsIG9mZnNfdCBlbmQsIHBvcnRfcmVh ZDMyX2hhbmRsZXIgaGFuZGxlcik7CnZvaWQgaW5zdGFsbF9wb3J0X3dyaXRlX2hhbmRsZXIgKGlu dCBjcHVudW0sIG9mZnNfdCBzdGFydCwgb2Zmc190IGVuZCwgcG9ydF93cml0ZV9oYW5kbGVyIGhh bmRsZXIpOwp2b2lkIGluc3RhbGxfcG9ydF93cml0ZTE2X2hhbmRsZXIoaW50IGNwdW51bSwgb2Zm c190IHN0YXJ0LCBvZmZzX3QgZW5kLCBwb3J0X3dyaXRlMTZfaGFuZGxlciBoYW5kbGVyKTsKdm9p ZCBpbnN0YWxsX3BvcnRfd3JpdGUzMl9oYW5kbGVyKGludCBjcHVudW0sIG9mZnNfdCBzdGFydCwg b2Zmc190IGVuZCwgcG9ydF93cml0ZTMyX2hhbmRsZXIgaGFuZGxlcik7CiMgODEzICJzcmMvbWVt b3J5LmgiCmV4dGVybiBVSU5UOCBvcGNvZGVfZW50cnk7CmV4dGVybiBVSU5UOCAqIE9QX1JPTTsK ZXh0ZXJuIFVJTlQ4ICogT1BfUkFNOwpleHRlcm4gVUlOVDggKiBjcHVfYmFua2Jhc2VbXTsKZXh0 ZXJuIFVJTlQ4ICogcmVhZG1lbV9sb29rdXA7CmV4dGVybiBvZmZzX3QgbWVtX2FtYXNrOwpleHRl cm4gc3RydWN0IEV4dE1lbW9yeSBleHRfbWVtb3J5W107CiMgNTUgInNyYy9kcml2ZXIuaCIgMgoj IDEgInNyYy9tYW1lZGJnLmgiIDEKCgoKIyAxICJzcmMvZHJpdmVyLmgiIDEKIyA1ICJzcmMvbWFt ZWRiZy5oIiAyCgoKCgpleHRlcm4gaW50IG1hbWVfZGVidWc7CiMgNTYgInNyYy9kcml2ZXIuaCIg MgojIDEgInNyYy9vc2RlcGVuZC5oIiAxCgoKCgojIDEgInNyYy9pbnB0cG9ydC5oIiAxCgoKCgoj IDEgInNyYy9pbnB1dC5oIiAxCgoKCnR5cGVkZWYgdW5zaWduZWQgSW5wdXRDb2RlOwoKc3RydWN0 IEtleWJvYXJkSW5mbwp7CiAgICAgICAgY2hhciAqbmFtZTsKICAgICAgICB1bnNpZ25lZCBjb2Rl OwogICAgICAgIElucHV0Q29kZSBzdGFuZGFyZGNvZGU7Cn07CgpzdHJ1Y3QgSm95c3RpY2tJbmZv CnsKICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIHVuc2lnbmVkIGNvZGU7CiAgICAgICAgSW5w dXRDb2RlIHN0YW5kYXJkY29kZTsKfTsKCmVudW0KewoKICAgICAgICBLRVlDT0RFX0EsIEtFWUNP REVfQiwgS0VZQ09ERV9DLCBLRVlDT0RFX0QsIEtFWUNPREVfRSwgS0VZQ09ERV9GLAogICAgICAg IEtFWUNPREVfRywgS0VZQ09ERV9ILCBLRVlDT0RFX0ksIEtFWUNPREVfSiwgS0VZQ09ERV9LLCBL RVlDT0RFX0wsCiAgICAgICAgS0VZQ09ERV9NLCBLRVlDT0RFX04sIEtFWUNPREVfTywgS0VZQ09E RV9QLCBLRVlDT0RFX1EsIEtFWUNPREVfUiwKICAgICAgICBLRVlDT0RFX1MsIEtFWUNPREVfVCwg S0VZQ09ERV9VLCBLRVlDT0RFX1YsIEtFWUNPREVfVywgS0VZQ09ERV9YLAogICAgICAgIEtFWUNP REVfWSwgS0VZQ09ERV9aLCBLRVlDT0RFXzAsIEtFWUNPREVfMSwgS0VZQ09ERV8yLCBLRVlDT0RF XzMsCiAgICAgICAgS0VZQ09ERV80LCBLRVlDT0RFXzUsIEtFWUNPREVfNiwgS0VZQ09ERV83LCBL RVlDT0RFXzgsIEtFWUNPREVfOSwKICAgICAgICBLRVlDT0RFXzBfUEFELCBLRVlDT0RFXzFfUEFE LCBLRVlDT0RFXzJfUEFELCBLRVlDT0RFXzNfUEFELCBLRVlDT0RFXzRfUEFELAogICAgICAgIEtF WUNPREVfNV9QQUQsIEtFWUNPREVfNl9QQUQsIEtFWUNPREVfN19QQUQsIEtFWUNPREVfOF9QQUQs IEtFWUNPREVfOV9QQUQsCiAgICAgICAgS0VZQ09ERV9GMSwgS0VZQ09ERV9GMiwgS0VZQ09ERV9G MywgS0VZQ09ERV9GNCwgS0VZQ09ERV9GNSwKICAgICAgICBLRVlDT0RFX0Y2LCBLRVlDT0RFX0Y3 LCBLRVlDT0RFX0Y4LCBLRVlDT0RFX0Y5LCBLRVlDT0RFX0YxMCwKICAgICAgICBLRVlDT0RFX0Yx MSwgS0VZQ09ERV9GMTIsCiAgICAgICAgS0VZQ09ERV9FU0MsIEtFWUNPREVfVElMREUsIEtFWUNP REVfTUlOVVMsIEtFWUNPREVfRVFVQUxTLCBLRVlDT0RFX0JBQ0tTUEFDRSwKICAgICAgICBLRVlD T0RFX1RBQiwgS0VZQ09ERV9PUEVOQlJBQ0UsIEtFWUNPREVfQ0xPU0VCUkFDRSwgS0VZQ09ERV9F TlRFUiwgS0VZQ09ERV9DT0xPTiwKICAgICAgICBLRVlDT0RFX1FVT1RFLCBLRVlDT0RFX0JBQ0tT TEFTSCwgS0VZQ09ERV9CQUNLU0xBU0gyLCBLRVlDT0RFX0NPTU1BLCBLRVlDT0RFX1NUT1AsCiAg ICAgICAgS0VZQ09ERV9TTEFTSCwgS0VZQ09ERV9TUEFDRSwgS0VZQ09ERV9JTlNFUlQsIEtFWUNP REVfREVMLAogICAgICAgIEtFWUNPREVfSE9NRSwgS0VZQ09ERV9FTkQsIEtFWUNPREVfUEdVUCwg S0VZQ09ERV9QR0ROLCBLRVlDT0RFX0xFRlQsCiAgICAgICAgS0VZQ09ERV9SSUdIVCwgS0VZQ09E RV9VUCwgS0VZQ09ERV9ET1dOLAogICAgICAgIEtFWUNPREVfU0xBU0hfUEFELCBLRVlDT0RFX0FT VEVSSVNLLCBLRVlDT0RFX01JTlVTX1BBRCwgS0VZQ09ERV9QTFVTX1BBRCwKICAgICAgICBLRVlD T0RFX0RFTF9QQUQsIEtFWUNPREVfRU5URVJfUEFELCBLRVlDT0RFX1BSVFNDUiwgS0VZQ09ERV9Q QVVTRSwKICAgICAgICBLRVlDT0RFX0xTSElGVCwgS0VZQ09ERV9SU0hJRlQsIEtFWUNPREVfTENP TlRST0wsIEtFWUNPREVfUkNPTlRST0wsCiAgICAgICAgS0VZQ09ERV9MQUxULCBLRVlDT0RFX1JB TFQsIEtFWUNPREVfU0NSTE9DSywgS0VZQ09ERV9OVU1MT0NLLCBLRVlDT0RFX0NBUFNMT0NLLAog ICAgICAgIEtFWUNPREVfTFdJTiwgS0VZQ09ERV9SV0lOLCBLRVlDT0RFX01FTlUsCgoKCgogICAg ICAgIEpPWUNPREVfMV9MRUZULEpPWUNPREVfMV9SSUdIVCxKT1lDT0RFXzFfVVAsSk9ZQ09ERV8x X0RPV04sCiAgICAgICAgSk9ZQ09ERV8xX0JVVFRPTjEsSk9ZQ09ERV8xX0JVVFRPTjIsSk9ZQ09E RV8xX0JVVFRPTjMsCiAgICAgICAgSk9ZQ09ERV8xX0JVVFRPTjQsSk9ZQ09ERV8xX0JVVFRPTjUs Sk9ZQ09ERV8xX0JVVFRPTjYsCiAgICAgICAgSk9ZQ09ERV8xX1NUQVJULCBKT1lDT0RFXzFfU0VM RUNULAogICAgICAgIEpPWUNPREVfMl9MRUZULEpPWUNPREVfMl9SSUdIVCxKT1lDT0RFXzJfVVAs Sk9ZQ09ERV8yX0RPV04sCiAgICAgICAgSk9ZQ09ERV8yX0JVVFRPTjEsSk9ZQ09ERV8yX0JVVFRP TjIsSk9ZQ09ERV8yX0JVVFRPTjMsCiAgICAgICAgSk9ZQ09ERV8yX0JVVFRPTjQsSk9ZQ09ERV8y X0JVVFRPTjUsSk9ZQ09ERV8yX0JVVFRPTjYsCiAgICAgICAgSk9ZQ09ERV8yX1NUQVJULCBKT1lD T0RFXzJfU0VMRUNULAogICAgICAgIEpPWUNPREVfM19MRUZULEpPWUNPREVfM19SSUdIVCxKT1lD T0RFXzNfVVAsSk9ZQ09ERV8zX0RPV04sCiAgICAgICAgSk9ZQ09ERV8zX0JVVFRPTjEsSk9ZQ09E RV8zX0JVVFRPTjIsSk9ZQ09ERV8zX0JVVFRPTjMsCiAgICAgICAgSk9ZQ09ERV8zX0JVVFRPTjQs Sk9ZQ09ERV8zX0JVVFRPTjUsSk9ZQ09ERV8zX0JVVFRPTjYsCiAgICAgICAgSk9ZQ09ERV8zX1NU QVJULCBKT1lDT0RFXzNfU0VMRUNULAogICAgICAgIEpPWUNPREVfNF9MRUZULEpPWUNPREVfNF9S SUdIVCxKT1lDT0RFXzRfVVAsSk9ZQ09ERV80X0RPV04sCiAgICAgICAgSk9ZQ09ERV80X0JVVFRP TjEsSk9ZQ09ERV80X0JVVFRPTjIsSk9ZQ09ERV80X0JVVFRPTjMsCiAgICAgICAgSk9ZQ09ERV80 X0JVVFRPTjQsSk9ZQ09ERV80X0JVVFRPTjUsSk9ZQ09ERV80X0JVVFRPTjYsCiAgICAgICAgSk9Z Q09ERV80X1NUQVJULCBKT1lDT0RFXzRfU0VMRUNULAogICAgICAgIEpPWUNPREVfTU9VU0VfMV9C VVRUT04xLEpPWUNPREVfTU9VU0VfMV9CVVRUT04yLEpPWUNPREVfTU9VU0VfMV9CVVRUT04zLAoK CgogICAgICAgIF9fY29kZV9tYXgsCgoKICAgICAgICBDT0RFX05PTkUgPSAweDgwMDAsCiAgICAg ICAgQ09ERV9PVEhFUiwKICAgICAgICBDT0RFX0RFRkFVTFQsCiAgICAgICAgQ09ERV9QUkVWSU9V UywKICAgICAgICBDT0RFX05PVCwKICAgICAgICBDT0RFX09SCn07CiMgODkgInNyYy9pbnB1dC5o IgppbnQgY29kZV9pbml0KHZvaWQpOwp2b2lkIGNvZGVfY2xvc2Uodm9pZCk7CgpJbnB1dENvZGUg a2V5b3Njb2RlX3RvX2NvZGUodW5zaWduZWQgb3Njb2RlKTsKSW5wdXRDb2RlIGpveW9zY29kZV90 b19jb2RlKHVuc2lnbmVkIG9zY29kZSk7CklucHV0Q29kZSBzYXZlY29kZV90b19jb2RlKHVuc2ln bmVkIHNhdmVjb2RlKTsKdW5zaWduZWQgY29kZV90b19zYXZlY29kZShJbnB1dENvZGUgY29kZSk7 Cgpjb25zdCBjaGFyICpjb2RlX25hbWUoSW5wdXRDb2RlIGNvZGUpOwppbnQgY29kZV9wcmVzc2Vk KElucHV0Q29kZSBjb2RlKTsKaW50IGNvZGVfcHJlc3NlZF9tZW1vcnkoSW5wdXRDb2RlIGNvZGUp OwppbnQgY29kZV9wcmVzc2VkX21lbW9yeV9yZXBlYXQoSW5wdXRDb2RlIGNvZGUsIGludCBzcGVl ZCk7CklucHV0Q29kZSBjb2RlX3JlYWRfYXN5bmModm9pZCk7CklOVDggY29kZV9yZWFkX2hleF9h c3luYyh2b2lkKTsKIyAxMTcgInNyYy9pbnB1dC5oIgp0eXBlZGVmIElucHV0Q29kZSBJbnB1dFNl cVsxNl07CgpzdGF0aWMgX19pbmxpbmVfXyBJbnB1dENvZGUgc2VxX2dldF8xKElucHV0U2VxKiBh KSB7CiAgICAgICAgcmV0dXJuICgqYSlbMF07Cn0KCnZvaWQgc2VxX3NldF8wKElucHV0U2VxKiBz ZXEpOwp2b2lkIHNlcV9zZXRfMShJbnB1dFNlcSogc2VxLCBJbnB1dENvZGUgY29kZSk7CnZvaWQg c2VxX3NldF8yKElucHV0U2VxKiBzZXEsIElucHV0Q29kZSBjb2RlMSwgSW5wdXRDb2RlIGNvZGUy KTsKdm9pZCBzZXFfc2V0XzMoSW5wdXRTZXEqIHNlcSwgSW5wdXRDb2RlIGNvZGUxLCBJbnB1dENv ZGUgY29kZTIsIElucHV0Q29kZSBjb2RlMyk7CnZvaWQgc2VxX2NvcHkoSW5wdXRTZXEqIHNlcWRz dCwgSW5wdXRTZXEqIHNlcXNyYyk7CmludCBzZXFfY21wKElucHV0U2VxKiBzZXExLCBJbnB1dFNl cSogc2VxMik7CnZvaWQgc2VxX25hbWUoSW5wdXRTZXEqIHNlcSwgY2hhciogYnVmZmVyLCB1bnNp Z25lZCBtYXgpOwppbnQgc2VxX3ByZXNzZWQoSW5wdXRTZXEqIHNlcSk7CnZvaWQgc2VxX3JlYWRf YXN5bmNfc3RhcnQodm9pZCk7CmludCBzZXFfcmVhZF9hc3luYyhJbnB1dFNlcSogY29kZSwgaW50 IGZpcnN0KTsKIyAxNDYgInNyYy9pbnB1dC5oIgppbnQgaW5wdXRfdWlfcHJlc3NlZChpbnQgY29k ZSk7CmludCBpbnB1dF91aV9wcmVzc2VkX3JlcGVhdChpbnQgY29kZSwgaW50IHNwZWVkKTsKIyA2 ICJzcmMvaW5wdHBvcnQuaCIgMgojIDE5ICJzcmMvaW5wdHBvcnQuaCIKc3RydWN0IElucHV0UG9y dFRpbnkKewogICAgICAgIFVJTlQxNiBtYXNrOwogICAgICAgIFVJTlQxNiBkZWZhdWx0X3ZhbHVl OwoKICAgICAgICBVSU5UMzIgdHlwZTsKICAgICAgICBjb25zdCBjaGFyICpuYW1lOwp9OwoKc3Ry dWN0IElucHV0UG9ydAp7CiAgICAgICAgVUlOVDE2IG1hc2s7CiAgICAgICAgVUlOVDE2IGRlZmF1 bHRfdmFsdWU7CgogICAgICAgIFVJTlQzMiB0eXBlOwogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7 CiAgICAgICAgSW5wdXRTZXEgc2VxOwoKCgoKfTsKCgoKCgplbnVtIHsgSVBUX0VORD0xLElQVF9Q T1JULAoKICAgICAgICBJUFRfSk9ZU1RJQ0tfVVAsIElQVF9KT1lTVElDS19ET1dOLCBJUFRfSk9Z U1RJQ0tfTEVGVCwgSVBUX0pPWVNUSUNLX1JJR0hULAoKICAgICAgICBJUFRfSk9ZU1RJQ0tSSUdI VF9VUCwgSVBUX0pPWVNUSUNLUklHSFRfRE9XTiwgSVBUX0pPWVNUSUNLUklHSFRfTEVGVCwgSVBU X0pPWVNUSUNLUklHSFRfUklHSFQsCiAgICAgICAgSVBUX0pPWVNUSUNLTEVGVF9VUCwgSVBUX0pP WVNUSUNLTEVGVF9ET1dOLCBJUFRfSk9ZU1RJQ0tMRUZUX0xFRlQsIElQVF9KT1lTVElDS0xFRlRf UklHSFQsCiAgICAgICAgSVBUX0JVVFRPTjEsIElQVF9CVVRUT04yLCBJUFRfQlVUVE9OMywgSVBU X0JVVFRPTjQsCiAgICAgICAgSVBUX0JVVFRPTjUsIElQVF9CVVRUT042LCBJUFRfQlVUVE9ONywg SVBUX0JVVFRPTjgsIElQVF9CVVRUT045LCBJUFRfQlVUVE9OMTAsCgoKCgogICAgICAgIElQVF9B TkFMT0dfU1RBUlQsCiAgICAgICAgSVBUX1BBRERMRSwgSVBUX1BBRERMRV9WLAogICAgICAgIElQ VF9ESUFMLCBJUFRfRElBTF9WLAogICAgICAgIElQVF9UUkFDS0JBTExfWCwgSVBUX1RSQUNLQkFM TF9ZLAogICAgICAgIElQVF9BRF9TVElDS19YLCBJUFRfQURfU1RJQ0tfWSwKICAgICAgICBJUFRf UEVEQUwsCiAgICAgICAgSVBUX0FOQUxPR19FTkQsCgogICAgICAgIElQVF9TVEFSVDEsIElQVF9T VEFSVDIsIElQVF9TVEFSVDMsIElQVF9TVEFSVDQsCiAgICAgICAgSVBUX0NPSU4xLCBJUFRfQ09J TjIsIElQVF9DT0lOMywgSVBUX0NPSU40LAogICAgICAgIElQVF9TRVJWSUNFMSwgSVBUX1NFUlZJ Q0UyLCBJUFRfU0VSVklDRTMsIElQVF9TRVJWSUNFNCwKICAgICAgICBJUFRfU0VSVklDRSwgSVBU X1RJTFQsCiAgICAgICAgSVBUX0RJUFNXSVRDSF9OQU1FLCBJUFRfRElQU1dJVENIX1NFVFRJTkcs CgoKCiAgICAgICAgSVBUX1ZCTEFOSywKICAgICAgICBJUFRfVU5LTk9XTiwKICAgICAgICBJUFRf T1NEX1JFU0VSVkVELAogICAgICAgIElQVF9PU0RfMSwKICAgICAgICBJUFRfT1NEXzIsCiAgICAg ICAgSVBUX09TRF8zLAogICAgICAgIElQVF9PU0RfNCwKICAgICAgICBJUFRfRVhURU5TSU9OLAoK CgogICAgICAgIElQVF9VSV9DT05GSUdVUkUsCiAgICAgICAgSVBUX1VJX09OX1NDUkVFTl9ESVNQ TEFZLAogICAgICAgIElQVF9VSV9QQVVTRSwKICAgICAgICBJUFRfVUlfUkVTRVRfTUFDSElORSwK ICAgICAgICBJUFRfVUlfU0hPV19HRlgsCiAgICAgICAgSVBUX1VJX0ZSQU1FU0tJUF9ERUMsCiAg ICAgICAgSVBUX1VJX0ZSQU1FU0tJUF9JTkMsCiAgICAgICAgSVBUX1VJX1RIUk9UVExFLAogICAg ICAgIElQVF9VSV9TSE9XX0ZQUywKICAgICAgICBJUFRfVUlfU05BUFNIT1QsCiAgICAgICAgSVBU X1VJX1RPR0dMRV9DSEVBVCwKICAgICAgICBJUFRfVUlfVVAsCiAgICAgICAgSVBUX1VJX0RPV04s CiAgICAgICAgSVBUX1VJX0xFRlQsCiAgICAgICAgSVBUX1VJX1JJR0hULAogICAgICAgIElQVF9V SV9TRUxFQ1QsCiAgICAgICAgSVBUX1VJX0NBTkNFTCwKICAgICAgICBJUFRfVUlfUEFOX1VQLCBJ UFRfVUlfUEFOX0RPV04sIElQVF9VSV9QQU5fTEVGVCwgSVBUX1VJX1BBTl9SSUdIVCwKICAgICAg ICBJUFRfVUlfU0hPV19QUk9GSUxFUiwKICAgICAgICBJUFRfVUlfVE9HR0xFX1VJLAogICAgICAg IElQVF9VSV9UT0dHTEVfREVCVUcsCiAgICAgICAgSVBUX1VJX1NBVkVfU1RBVEUsCiAgICAgICAg SVBUX1VJX0xPQURfU1RBVEUsCiAgICAgICAgSVBUX1VJX0FERF9DSEVBVCwKICAgICAgICBJUFRf VUlfREVMRVRFX0NIRUFULAogICAgICAgIElQVF9VSV9TQVZFX0NIRUFULAogICAgICAgIElQVF9V SV9XQVRDSF9WQUxVRSwKICAgICAgICBJUFRfVUlfRURJVF9DSEVBVCwKICAgICAgICBfX2lwdF9t YXgKfTsKIyAyNTEgInNyYy9pbnB0cG9ydC5oIgpleHRlcm4gY2hhciBpcGRuX2RlZmF1bHRzdHJp bmdzW11bMjBdOwoKCmVudW0gewogICAgICAgIFNUUl9PZmYsCiAgICAgICAgU1RSX09uLAogICAg ICAgIFNUUl9ObywKICAgICAgICBTVFJfWWVzLAogICAgICAgIFNUUl9MaXZlcywKICAgICAgICBT VFJfQm9udXNfTGlmZSwKICAgICAgICBTVFJfRGlmZmljdWx0eSwKICAgICAgICBTVFJfRGVtb19T b3VuZHMsCiAgICAgICAgU1RSX0NvaW5hZ2UsCiAgICAgICAgU1RSX0NvaW5fQSwKICAgICAgICBT VFJfQ29pbl9CLAogICAgICAgIFNUUl85Q18xQywKICAgICAgICBTVFJfOENfMUMsCiAgICAgICAg U1RSXzdDXzFDLAogICAgICAgIFNUUl82Q18xQywKICAgICAgICBTVFJfNUNfMUMsCiAgICAgICAg U1RSXzRDXzFDLAogICAgICAgIFNUUl8zQ18xQywKICAgICAgICBTVFJfOENfM0MsCiAgICAgICAg U1RSXzRDXzJDLAogICAgICAgIFNUUl8yQ18xQywKICAgICAgICBTVFJfNUNfM0MsCiAgICAgICAg U1RSXzNDXzJDLAogICAgICAgIFNUUl80Q18zQywKICAgICAgICBTVFJfNENfNEMsCiAgICAgICAg U1RSXzNDXzNDLAogICAgICAgIFNUUl8yQ18yQywKICAgICAgICBTVFJfMUNfMUMsCiAgICAgICAg U1RSXzRDXzVDLAogICAgICAgIFNUUl8zQ180QywKICAgICAgICBTVFJfMkNfM0MsCiAgICAgICAg U1RSXzRDXzdDLAogICAgICAgIFNUUl8yQ180QywKICAgICAgICBTVFJfMUNfMkMsCiAgICAgICAg U1RSXzJDXzVDLAogICAgICAgIFNUUl8yQ182QywKICAgICAgICBTVFJfMUNfM0MsCiAgICAgICAg U1RSXzJDXzdDLAogICAgICAgIFNUUl8yQ184QywKICAgICAgICBTVFJfMUNfNEMsCiAgICAgICAg U1RSXzFDXzVDLAogICAgICAgIFNUUl8xQ182QywKICAgICAgICBTVFJfMUNfN0MsCiAgICAgICAg U1RSXzFDXzhDLAogICAgICAgIFNUUl8xQ185QywKICAgICAgICBTVFJfRnJlZV9QbGF5LAogICAg ICAgIFNUUl9DYWJpbmV0LAogICAgICAgIFNUUl9VcHJpZ2h0LAogICAgICAgIFNUUl9Db2NrdGFp bCwKICAgICAgICBTVFJfRmxpcF9TY3JlZW4sCiAgICAgICAgU1RSX1NlcnZpY2VfTW9kZSwKICAg ICAgICBTVFJfVW51c2VkLAogICAgICAgIFNUUl9Vbmtub3duLAogICAgICAgIFNUUl9UT1RBTAp9 OwoKZW51bSB7IElLVF9TVEQsIElLVF9JUFQsIElLVF9JUFRfRVhULCBJS1RfT1NEX0tFWSwgSUtU X09TRF9KT1kgfTsKCgoKCgoKaW50IGxvYWRfaW5wdXRfcG9ydF9zZXR0aW5ncyh2b2lkKTsKdm9p ZCBzYXZlX2lucHV0X3BvcnRfc2V0dGluZ3Modm9pZCk7Cgpjb25zdCBjaGFyICppbnB1dF9wb3J0 X25hbWUoY29uc3Qgc3RydWN0IElucHV0UG9ydCAqaW4pOwpJbnB1dFNlcSogaW5wdXRfcG9ydF90 eXBlX3NlcShpbnQgdHlwZSk7CklucHV0U2VxKiBpbnB1dF9wb3J0X3NlcShjb25zdCBzdHJ1Y3Qg SW5wdXRQb3J0ICppbik7CgpzdHJ1Y3QgSW5wdXRQb3J0KiBpbnB1dF9wb3J0X2FsbG9jYXRlKGNv bnN0IHN0cnVjdCBJbnB1dFBvcnRUaW55ICpzcmMpOwp2b2lkIGlucHV0X3BvcnRfZnJlZShzdHJ1 Y3QgSW5wdXRQb3J0KiBkc3QpOwoKCgoKCnZvaWQgdXBkYXRlX2FuYWxvZ19wb3J0KGludCBwb3J0 KTsKdm9pZCB1cGRhdGVfaW5wdXRfcG9ydHModm9pZCk7CnZvaWQgaW5wdXRwb3J0X3ZibGFua19l bmQodm9pZCk7CgppbnQgcmVhZGlucHV0cG9ydChpbnQgcG9ydCk7CmRhdGE4X3QgaW5wdXRfcG9y dF8wX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90 IGlucHV0X3BvcnRfMV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 KTsKZGF0YThfdCBpbnB1dF9wb3J0XzJfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCk7CmRhdGE4X3QgaW5wdXRfcG9ydF8zX3IoX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IGlucHV0X3BvcnRfNF9yKF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBpbnB1dF9wb3J0XzVfcihf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgaW5wdXRf cG9ydF82X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRh OF90IGlucHV0X3BvcnRfN19yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0KTsKZGF0YThfdCBpbnB1dF9wb3J0XzhfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCk7CmRhdGE4X3QgaW5wdXRfcG9ydF85X3IoX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IGlucHV0X3BvcnRfMTBfcihfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgaW5wdXRfcG9ydF8x MV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBp bnB1dF9wb3J0XzEyX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQp OwpkYXRhOF90IGlucHV0X3BvcnRfMTNfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCk7CmRhdGE4X3QgaW5wdXRfcG9ydF8xNF9yKF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBpbnB1dF9wb3J0XzE1X3IoX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IGlucHV0X3BvcnRfMTZf cihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgaW5w dXRfcG9ydF8xN19yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsK ZGF0YThfdCBpbnB1dF9wb3J0XzE4X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQpOwpkYXRhOF90IGlucHV0X3BvcnRfMTlfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCk7CgpkYXRhMTZfdCBpbnB1dF9wb3J0XzBfd29yZF9yKF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0XzFfd29yZF9y KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0XzJf d29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9w b3J0XzNfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBp bnB1dF9wb3J0XzRfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRh MTZfdCBpbnB1dF9wb3J0XzVfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2sp OwpkYXRhMTZfdCBpbnB1dF9wb3J0XzZfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVt X21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0Xzdfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2 X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0Xzhfd29yZF9yKF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0Xzlfd29yZF9yKF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0XzEwX3dvcmRfcihf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgaW5wdXRfcG9ydF8xMV93 b3JkX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IGlucHV0X3Bv cnRfMTJfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBp bnB1dF9wb3J0XzEzX3dvcmRfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0 YTE2X3QgaW5wdXRfcG9ydF8xNF93b3JkX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFz ayk7CmRhdGExNl90IGlucHV0X3BvcnRfMTVfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3Qg bWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0XzE2X3dvcmRfcihfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgaW5wdXRfcG9ydF8xN193b3JkX3IoX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IGlucHV0X3BvcnRfMThfd29yZF9yKF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBpbnB1dF9wb3J0XzE5X3dv cmRfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKCnN0cnVjdCBpcGQKewogICAg ICAgIFVJTlQzMiB0eXBlOwogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgICAgSW5wdXRT ZXEgc2VxOwp9OwoKc3RydWN0IGlrCnsKICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIFVJTlQz MiB0eXBlOwogICAgICAgIFVJTlQzMiB2YWw7Cn07CmV4dGVybiBzdHJ1Y3QgaWsgaW5wdXRfa2V5 d29yZHNbXTsKZXh0ZXJuIHN0cnVjdCBpayAqb3NkX2lucHV0X2tleXdvcmRzOwpleHRlcm4gaW50 IG51bV9pazsKCnZvaWQgc2VxX3NldF9zdHJpbmcoSW5wdXRTZXEqIGEsIGNvbnN0IGNoYXIgKmJ1 Zik7CiMgNiAic3JjL29zZGVwZW5kLmgiIDIKIyAyMyAic3JjL29zZGVwZW5kLmgiCmludCBvc2Rf aW5pdCh2b2lkKTsKdm9pZCBvc2RfZXhpdCh2b2lkKTsKIyAzNSAic3JjL29zZGVwZW5kLmgiCnN0 cnVjdCBtYW1lX2JpdG1hcDsKIyA1OSAic3JjL29zZGVwZW5kLmgiCmludCBvc2RfY3JlYXRlX2Rp c3BsYXkoaW50IHdpZHRoLGludCBoZWlnaHQsaW50IGRlcHRoLGludCBmcHMsaW50IGF0dHJpYnV0 ZXMsaW50IG9yaWVudGF0aW9uKTsKdm9pZCBvc2RfY2xvc2VfZGlzcGxheSh2b2lkKTsKIyA3NyAi c3JjL29zZGVwZW5kLmgiCnZvaWQgb3NkX3NldF92aXNpYmxlX2FyZWEoaW50IG1pbl94LGludCBt YXhfeCxpbnQgbWluX3ksaW50IG1heF95KTsKIyAxMDMgInNyYy9vc2RlcGVuZC5oIgppbnQgb3Nk X2FsbG9jYXRlX2NvbG9ycyh1bnNpZ25lZCBpbnQgdG90YWxjb2xvcnMsCiAgICAgICAgICAgICAg ICBjb25zdCBVSU5UOCAqcGFsZXR0ZSxVSU5UMzIgKnJnYl9jb21wb25lbnRzLAogICAgICAgICAg ICAgICAgY29uc3QgVUlOVDggKmRlYnVnX3BhbGV0dGUsVUlOVDMyICpkZWJ1Z19wZW5zKTsKdm9p ZCBvc2RfbW9kaWZ5X3BlbihpbnQgcGVuLHVuc2lnbmVkIGNoYXIgcmVkLCB1bnNpZ25lZCBjaGFy IGdyZWVuLCB1bnNpZ25lZCBjaGFyIGJsdWUpOwoKdm9pZCBvc2RfbWFya19kaXJ0eShpbnQgeG1p bixpbnQgeW1pbixpbnQgeG1heCxpbnQgeW1heCk7CiMgMTIwICJzcmMvb3NkZXBlbmQuaCIKaW50 IG9zZF9za2lwX3RoaXNfZnJhbWUodm9pZCk7CiMgMTM1ICJzcmMvb3NkZXBlbmQuaCIKdm9pZCBv c2RfdXBkYXRlX3ZpZGVvX2FuZF9hdWRpbygKICAgICAgICAgICAgICAgIHN0cnVjdCBtYW1lX2Jp dG1hcCAqZ2FtZV9iaXRtYXAsc3RydWN0IG1hbWVfYml0bWFwICpkZWJ1Z19iaXRtYXAsaW50IGxl ZHNfc3RhdHVzKTsKCnZvaWQgb3NkX2RlYnVnZ2VyX2ZvY3VzKGludCBkZWJ1Z2dlcl9oYXNfZm9j dXMpOwoKdm9pZCBvc2Rfc2V0X2dhbW1hKGZsb2F0IF9nYW1tYSk7CmZsb2F0IG9zZF9nZXRfZ2Ft bWEodm9pZCk7CnZvaWQgb3NkX3NldF9icmlnaHRuZXNzKGludCBicmlnaHRuZXNzKTsKaW50IG9z ZF9nZXRfYnJpZ2h0bmVzcyh2b2lkKTsKIyAxNTMgInNyYy9vc2RlcGVuZC5oIgp2b2lkIG9zZF9z YXZlX3NuYXBzaG90KHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwKTsKIyAxODIgInNyYy9vc2Rl cGVuZC5oIgppbnQgb3NkX3N0YXJ0X2F1ZGlvX3N0cmVhbShpbnQgc3RlcmVvKTsKaW50IG9zZF91 cGRhdGVfYXVkaW9fc3RyZWFtKElOVDE2ICpidWZmZXIpOwp2b2lkIG9zZF9zdG9wX2F1ZGlvX3N0 cmVhbSh2b2lkKTsKIyAxOTMgInNyYy9vc2RlcGVuZC5oIgp2b2lkIG9zZF9zZXRfbWFzdGVydm9s dW1lKGludCBhdHRlbnVhdGlvbik7CmludCBvc2RfZ2V0X21hc3RlcnZvbHVtZSh2b2lkKTsKCnZv aWQgb3NkX3NvdW5kX2VuYWJsZShpbnQgZW5hYmxlKTsKIyAyMDggInNyYy9vc2RlcGVuZC5oIgpj b25zdCBzdHJ1Y3QgS2V5Ym9hcmRJbmZvICpvc2RfZ2V0X2tleV9saXN0KHZvaWQpOwoKCgoKCmlu dCBvc2RfaXNfa2V5X3ByZXNzZWQoaW50IGtleWNvZGUpOwojIDIyNSAic3JjL29zZGVwZW5kLmgi CmludCBvc2RfcmVhZGtleV91bmljb2RlKGludCBmbHVzaCk7CiMgMjM3ICJzcmMvb3NkZXBlbmQu aCIKY29uc3Qgc3RydWN0IEpveXN0aWNrSW5mbyAqb3NkX2dldF9qb3lfbGlzdCh2b2lkKTsKCgoK CgoKaW50IG9zZF9pc19qb3lfcHJlc3NlZChpbnQgam95Y29kZSk7CiMgMjU0ICJzcmMvb3NkZXBl bmQuaCIKaW50IG9zZF9qb3lzdGlja19uZWVkc19jYWxpYnJhdGlvbiAodm9pZCk7Cgp2b2lkIG9z ZF9qb3lzdGlja19zdGFydF9jYWxpYnJhdGlvbiAodm9pZCk7CgoKY29uc3QgY2hhciAqb3NkX2pv eXN0aWNrX2NhbGlicmF0ZV9uZXh0ICh2b2lkKTsKCnZvaWQgb3NkX2pveXN0aWNrX2NhbGlicmF0 ZSAodm9pZCk7Cgp2b2lkIG9zZF9qb3lzdGlja19lbmRfY2FsaWJyYXRpb24gKHZvaWQpOwoKdm9p ZCBvc2RfdHJha19yZWFkKGludCBwbGF5ZXIsaW50ICpkZWx0YXgsaW50ICpkZWx0YXkpOwoKCnZv aWQgb3NkX2FuYWxvZ2pveV9yZWFkKGludCBwbGF5ZXIsaW50ICphbmFsb2dfeCwgaW50ICphbmFs b2dfeSk7CiMgMjgwICJzcmMvb3NkZXBlbmQuaCIKdm9pZCBvc2RfY3VzdG9taXplX2lucHV0cG9y dF9kZWZhdWx0cyhzdHJ1Y3QgaXBkICpkZWZhdWx0cyk7CiMgMjkwICJzcmMvb3NkZXBlbmQuaCIK dHlwZWRlZiBzdHJ1Y3QKewogICAgICAgIGNoYXIgbmFtZVs5XTsKICAgICAgICBjaGFyIHZlcnNp b25bM107CiAgICAgICAgY2hhciByZXNlcnZlZFsyMF07Cn0gSU5QX0hFQURFUjsKCgoKZW51bQp7 CiAgICAgICAgT1NEX0ZJTEVUWVBFX1JPTSA9IDEsCiAgICAgICAgT1NEX0ZJTEVUWVBFX1JPTV9O T0NSQywKICAgICAgICBPU0RfRklMRVRZUEVfSU1BR0VfUiwKICAgICAgICBPU0RfRklMRVRZUEVf SU1BR0VfUlcsCiAgICAgICAgT1NEX0ZJTEVUWVBFX0lNQUdFX0RJRkYsCiAgICAgICAgT1NEX0ZJ TEVUWVBFX1NBTVBMRSwKICAgICAgICBPU0RfRklMRVRZUEVfQVJUV09SSywKICAgICAgICBPU0Rf RklMRVRZUEVfTlZSQU0sCiAgICAgICAgT1NEX0ZJTEVUWVBFX0hJR0hTQ09SRSwKICAgICAgICBP U0RfRklMRVRZUEVfSElHSFNDT1JFX0RCLAogICAgICAgIE9TRF9GSUxFVFlQRV9DT05GSUcsCiAg ICAgICAgT1NEX0ZJTEVUWVBFX0lOUFVUTE9HLAogICAgICAgIE9TRF9GSUxFVFlQRV9TVEFURSwK ICAgICAgICBPU0RfRklMRVRZUEVfTUVNQ0FSRCwKICAgICAgICBPU0RfRklMRVRZUEVfU0NSRUVO U0hPVCwKICAgICAgICBPU0RfRklMRVRZUEVfSElTVE9SWSwKICAgICAgICBPU0RfRklMRVRZUEVf Q0hFQVQsCiAgICAgICAgT1NEX0ZJTEVUWVBFX0xBTkdVQUdFLAogICAgICAgIE9TRF9GSUxFVFlQ RV9DVFJMUiwKICAgICAgICBPU0RfRklMRVRZUEVfZW5kCn07CgoKCgoKaW50IG9zZF9mYWNjZXNz KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmlsZXR5cGUpOwp2b2lkICpvc2RfZm9wZW4oY29u c3QgY2hhciAqZ2FtZW5hbWUsY29uc3QgY2hhciAqZmlsZW5hbWUsaW50IGZpbGV0eXBlLGludCBy ZWFkX29yX3dyaXRlKTsKaW50IG9zZF9mcmVhZCh2b2lkICpmaWxlLHZvaWQgKmJ1ZmZlcixpbnQg bGVuZ3RoKTsKaW50IG9zZF9md3JpdGUodm9pZCAqZmlsZSxjb25zdCB2b2lkICpidWZmZXIsaW50 IGxlbmd0aCk7CmludCBvc2RfZnJlYWRfc3dhcCh2b2lkICpmaWxlLHZvaWQgKmJ1ZmZlcixpbnQg bGVuZ3RoKTsKaW50IG9zZF9md3JpdGVfc3dhcCh2b2lkICpmaWxlLGNvbnN0IHZvaWQgKmJ1ZmZl cixpbnQgbGVuZ3RoKTsKIyAzNDQgInNyYy9vc2RlcGVuZC5oIgppbnQgb3NkX2ZzZWVrKHZvaWQg KmZpbGUsaW50IG9mZnNldCxpbnQgd2hlbmNlKTsKdm9pZCBvc2RfZmNsb3NlKHZvaWQgKmZpbGUp OwppbnQgb3NkX2ZjaGVja3N1bShjb25zdCBjaGFyICpnYW1lbmFtZSwgY29uc3QgY2hhciAqZmls ZW5hbWUsIHVuc2lnbmVkIGludCAqbGVuZ3RoLCB1bnNpZ25lZCBpbnQgKnN1bSk7CmludCBvc2Rf ZnNpemUodm9pZCAqZmlsZSk7CnVuc2lnbmVkIGludCBvc2RfZmNyYyh2b2lkICpmaWxlKTsKCmlu dCBvc2RfZmdldGModm9pZCAqZmlsZSk7CmludCBvc2RfdW5nZXRjKGludCBjLCB2b2lkICpmaWxl KTsKY2hhciAqb3NkX2ZnZXRzKGNoYXIgKnMsIGludCBuLCB2b2lkICpmaWxlKTsKaW50IG9zZF9m ZW9mKHZvaWQgKmZpbGUpOwppbnQgb3NkX2Z0ZWxsKHZvaWQgKmZpbGUpOwoKCmNoYXIgKm9zZF9i YXNlbmFtZShjaGFyICpmaWxlbmFtZSk7CgpjaGFyICpvc2RfZGlybmFtZShjaGFyICpmaWxlbmFt ZSk7CgpjaGFyICpvc2Rfc3RyaXBfZXh0ZW5zaW9uKGNoYXIgKmZpbGVuYW1lKTsKIyAzNzIgInNy Yy9vc2RlcGVuZC5oIgppbnQgb3NkX2Rpc3BsYXlfbG9hZGluZ19yb21fbWVzc2FnZShjb25zdCBj aGFyICpuYW1lLGludCBjdXJyZW50LGludCB0b3RhbCk7CgoKCgoKdm9pZCBvc2RfcGF1c2UoaW50 IHBhdXNlZCk7CiMgNDAzICJzcmMvb3NkZXBlbmQuaCIKdm9pZCBsb2dlcnJvcihjb25zdCBjaGFy ICp0ZXh0LC4uLik7CiMgNTcgInNyYy9kcml2ZXIuaCIgMgojIDEgInNyYy9tYW1lLmgiIDEKIyAx MyAic3JjL21hbWUuaCIKIyAxICJzcmMvZHJhd2dmeC5oIiAxCiMgMTYgInNyYy9kcmF3Z2Z4Lmgi CiMgMSAic3JjL3BhbGV0dGUuaCIgMQojIDc3ICJzcmMvcGFsZXR0ZS5oIgp0eXBlZGVmIFVJTlQz MiBwZW5fdDsKdHlwZWRlZiBVSU5UMzIgcmdiX3Q7CgoKCgoKCmludCBwYWxldHRlX3N0YXJ0KHZv aWQpOwp2b2lkIHBhbGV0dGVfc3RvcCh2b2lkKTsKaW50IHBhbGV0dGVfaW5pdCh2b2lkKTsKCnZv aWQgcGFsZXR0ZV9zZXRfY29sb3IocGVuX3QgY29sb3IsVUlOVDggcixVSU5UOCBnLFVJTlQ4IGIp Owp2b2lkIHBhbGV0dGVfZ2V0X2NvbG9yKHBlbl90IGNvbG9yLFVJTlQ4ICpyLFVJTlQ4ICpnLFVJ TlQ4ICpiKTsKCgpleHRlcm4gVUlOVDE2ICpwYWxldHRlX3NoYWRvd190YWJsZTsKCgoKCnZvaWQg cGFsZXR0ZV9zZXRfYnJpZ2h0bmVzcyhwZW5fdCBjb2xvcixkb3VibGUgYnJpZ2h0KTsKdm9pZCBw YWxldHRlX3NldF9zaGFkb3dfZmFjdG9yKGRvdWJsZSBmYWN0b3IpOwp2b2lkIHBhbGV0dGVfc2V0 X2hpZ2hsaWdodF9mYWN0b3IoZG91YmxlIGZhY3Rvcik7CgoKcGVuX3QgZ2V0X2JsYWNrX3Blbih2 b2lkKTsKCgoKCgpleHRlcm4gZGF0YThfdCAqcGFsZXR0ZXJhbTsKZXh0ZXJuIGRhdGE4X3QgKnBh bGV0dGVyYW1fMjsKZXh0ZXJuIGRhdGExNl90ICpwYWxldHRlcmFtMTY7CmV4dGVybiBkYXRhMTZf dCAqcGFsZXR0ZXJhbTE2XzI7CmV4dGVybiBkYXRhMzJfdCAqcGFsZXR0ZXJhbTMyOwoKZGF0YThf dCBwYWxldHRlcmFtX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQp OwpkYXRhOF90IHBhbGV0dGVyYW1fMl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0KTsKZGF0YTE2X3QgcGFsZXR0ZXJhbTE2X3dvcmRfcihfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgcGFsZXR0ZXJhbTE2XzJfd29yZF9yKF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMzJfdCBwYWxldHRlcmFtMzJfcihfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGEzMl90IG1lbV9tYXNrKTsKCnZvaWQgcGFsZXR0ZXJhbV9CQkdHR1JSUl93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtX1JSUkdHR0JCX3coX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVyYW1fQkJCR0dHUlJfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJhbV9JSUJCR0dSUl93KF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtX0JCR0dSUklJX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKCgoKCgoKdm9pZCBwYWxldHRlcmFtX3h4eHhCQkJCR0dH R1JSUlJfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJhbV94eHh4 QkJCQkdHR0dSUlJSX3N3YXBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFs ZXR0ZXJhbV94eHh4QkJCQkdHR0dSUlJSX3NwbGl0MV93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBk YXRhKTsKdm9pZCBwYWxldHRlcmFtX3h4eHhCQkJCR0dHR1JSUlJfc3BsaXQyX3coX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVyYW0xNl94eHh4QkJCQkdHR0dSUlJSX3dv cmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgcGFsZXR0ZXJhbV94eHh4QkJCQlJSUlJHR0dH X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVyYW1feHh4eEJCQkJS UlJSR0dHR19zd2FwX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVy YW1feHh4eEJCQkJSUlJSR0dHR19zcGxpdDFfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7 CnZvaWQgcGFsZXR0ZXJhbV94eHh4QkJCQlJSUlJHR0dHX3NwbGl0Ml93KF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtX3h4eHhSUlJSQkJCQkdHR0dfc3BsaXQxX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVyYW1feHh4eFJSUlJCQkJC R0dHR19zcGxpdDJfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJh bV94eHh4UlJSUkdHR0dCQkJCX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBh bGV0dGVyYW1feHh4eFJSUlJHR0dHQkJCQl9zd2FwX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRh dGEpOwp2b2lkIHBhbGV0dGVyYW0xNl94eHh4UlJSUkdHR0dCQkJCX3dvcmRfdyhfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBt ZW1fbWFzayk7CnZvaWQgcGFsZXR0ZXJhbV9SUlJSR0dHR0JCQkJ4eHh4X3N3YXBfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJhbV9SUlJSR0dHR0JCQkJ4eHh4X3Nw bGl0MV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtX1JSUlJH R0dHQkJCQnh4eHhfc3BsaXQyX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBh bGV0dGVyYW0xNl9SUlJSR0dHR0JCQkJ4eHh4X3dvcmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZv aWQgcGFsZXR0ZXJhbV9CQkJCR0dHR1JSUlJ4eHh4X3N3YXBfdyhfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4 X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJhbV9CQkJCR0dHR1JSUlJ4eHh4X3NwbGl0MV93KF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtX0JCQkJHR0dHUlJSUnh4eHhf c3BsaXQyX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBhbGV0dGVyYW0xNl9C QkJCR0dHR1JSUlJ4eHh4X3dvcmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgcGFsZXR0ZXJh bV94QkJCQkJHR0dHR1JSUlJSX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBh bGV0dGVyYW1feEJCQkJCR0dHR0dSUlJSUl9zd2FwX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRh dGEpOwp2b2lkIHBhbGV0dGVyYW1feEJCQkJCR0dHR0dSUlJSUl9zcGxpdDFfdyhfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcGFsZXR0ZXJhbV94QkJCQkJHR0dHR1JSUlJSX3NwbGl0 Ml93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRlcmFtMTZfeEJCQkJC R0dHR0dSUlJSUl93b3JkX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIHBhbGV0dGVyYW1feFJS UlJSR0dHR0dCQkJCQl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwYWxldHRl cmFtMTZfeFJSUlJSR0dHR0dCQkJCQl93b3JkX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRh LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIHBh bGV0dGVyYW0xNl94R0dHR0dSUlJSUkJCQkJCX3dvcmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZv aWQgcGFsZXR0ZXJhbV9SUlJSUkdHR0dHQkJCQkJ4X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRh dGEpOwp2b2lkIHBhbGV0dGVyYW0xNl9SUlJSUkdHR0dHQkJCQkJ4X3dvcmRfdyhfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBt ZW1fbWFzayk7CnZvaWQgcGFsZXR0ZXJhbTE2X0lJSUlSUlJSR0dHR0JCQkJfd29yZF93KF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEx Nl90IG1lbV9tYXNrKTsKdm9pZCBwYWxldHRlcmFtMTZfUlJSUkdHR0dCQkJCSUlJSV93b3JkX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIHBhbGV0dGVyYW0xNl94cmdiX3dvcmRfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZf dCBtZW1fbWFzayk7CnZvaWQgcGFsZXR0ZXJhbTE2X1JSUlJHR0dHQkJCQlJHQnhfd29yZF93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKCnZvaWQgcGFsZXR0ZV9pbml0X1JSUlJfR0dHR19CQkJCKFVJTlQx NiAqY29sb3J0YWJsZSwgY29uc3QgVUlOVDggKmNvbG9yX3Byb20pOwojIDE3ICJzcmMvZHJhd2dm eC5oIiAyCiMgMzIgInNyYy9kcmF3Z2Z4LmgiCnN0cnVjdCBHZnhMYXlvdXQKewogICAgICAgIFVJ TlQxNiB3aWR0aCxoZWlnaHQ7CiAgICAgICAgVUlOVDMyIHRvdGFsOwogICAgICAgIFVJTlQxNiBw bGFuZXM7CiAgICAgICAgVUlOVDMyIHBsYW5lb2Zmc2V0WzhdOwogICAgICAgIFVJTlQzMiB4b2Zm c2V0WzY0XTsKICAgICAgICBVSU5UMzIgeW9mZnNldFs2NF07CiAgICAgICAgVUlOVDE2IGNoYXJp bmNyZW1lbnQ7Cn07CiMgNTkgInNyYy9kcmF3Z2Z4LmgiCnN0cnVjdCBHZnhFbGVtZW50CnsKICAg ICAgICBpbnQgd2lkdGgsaGVpZ2h0OwoKICAgICAgICB1bnNpZ25lZCBpbnQgdG90YWxfZWxlbWVu dHM7CiAgICAgICAgaW50IGNvbG9yX2dyYW51bGFyaXR5OwoKICAgICAgICBwZW5fdCAqY29sb3J0 YWJsZTsKICAgICAgICBpbnQgdG90YWxfY29sb3JzOwogICAgICAgIFVJTlQzMiAqcGVuX3VzYWdl OwoKCgoKICAgICAgICBVSU5UOCAqZ2Z4ZGF0YTsKICAgICAgICBpbnQgbGluZV9tb2R1bG87CiAg ICAgICAgaW50IGNoYXJfbW9kdWxvOwogICAgICAgIGludCBmbGFnczsKfTsKCgoKCgoKc3RydWN0 IEdmeERlY29kZUluZm8KewogICAgICAgIGludCBtZW1vcnlfcmVnaW9uOwoKICAgICAgICBpbnQg c3RhcnQ7CiAgICAgICAgc3RydWN0IEdmeExheW91dCAqZ2Z4bGF5b3V0OwogICAgICAgIGludCBj b2xvcl9jb2Rlc19zdGFydDsKICAgICAgICBpbnQgdG90YWxfY29sb3JfY29kZXM7Cn07CgoKc3Ry dWN0IHJlY3RhbmdsZQp7CiAgICAgICAgaW50IG1pbl94LG1heF94OwogICAgICAgIGludCBtaW5f eSxtYXhfeTsKfTsKCnN0cnVjdCBfYWxwaGFfY2FjaGUgewogICAgICAgIGNvbnN0IFVJTlQ4ICph bHBoYXM7CiAgICAgICAgY29uc3QgVUlOVDggKmFscGhhZDsKICAgICAgICBVSU5UOCBhbHBoYVsw eDEwMV1bMHgxMDBdOwp9OwoKZXh0ZXJuIHN0cnVjdCBfYWxwaGFfY2FjaGUgYWxwaGFfY2FjaGU7 CgplbnVtCnsKICAgICAgICBUUkFOU1BBUkVOQ1lfTk9ORSwKICAgICAgICBUUkFOU1BBUkVOQ1lf Tk9ORV9SQVcsCiAgICAgICAgVFJBTlNQQVJFTkNZX1BFTiwKICAgICAgICBUUkFOU1BBUkVOQ1lf UEVOX1JBVywKICAgICAgICBUUkFOU1BBUkVOQ1lfUEVOUywKICAgICAgICBUUkFOU1BBUkVOQ1lf UEVOU19SQVcsCiAgICAgICAgVFJBTlNQQVJFTkNZX0NPTE9SLAogICAgICAgIFRSQU5TUEFSRU5D WV9QRU5fVEFCTEUsCiAgICAgICAgVFJBTlNQQVJFTkNZX1BFTl9UQUJMRV9SQVcsCiAgICAgICAg VFJBTlNQQVJFTkNZX0JMRU5ELAogICAgICAgIFRSQU5TUEFSRU5DWV9CTEVORF9SQVcsCiAgICAg ICAgVFJBTlNQQVJFTkNZX0FMUEhBT05FLAogICAgICAgIFRSQU5TUEFSRU5DWV9BTFBIQSwKCiAg ICAgICAgVFJBTlNQQVJFTkNZX01PREVTCn07CgoKZXh0ZXJuIFVJTlQ4IGdmeF9kcmF3bW9kZV90 YWJsZVsyNTZdOwplbnVtCnsKICAgICAgICBEUkFXTU9ERV9OT05FLAogICAgICAgIERSQVdNT0RF X1NPVVJDRSwKICAgICAgICBEUkFXTU9ERV9TSEFET1cKfTsKCgoKZXh0ZXJuIGludCBwZHJhd2dm eF9zaGFkb3dfbG93cHJpOwoKCnR5cGVkZWYgdm9pZCAoKm1hcmtfZGlydHlfcHJvYykoaW50IHN4 LGludCBzeSxpbnQgZXgsaW50IGV5KTsKZXh0ZXJuIG1hcmtfZGlydHlfcHJvYyBtYXJrX2RpcnR5 OwojIDE1MiAic3JjL2RyYXdnZnguaCIKdm9pZCBkZWNvZGVjaGFyKHN0cnVjdCBHZnhFbGVtZW50 ICpnZngsaW50IG51bSxjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsY29uc3Qgc3RydWN0IEdmeExh eW91dCAqZ2wpOwpzdHJ1Y3QgR2Z4RWxlbWVudCAqZGVjb2RlZ2Z4KGNvbnN0IHVuc2lnbmVkIGNo YXIgKnNyYyxjb25zdCBzdHJ1Y3QgR2Z4TGF5b3V0ICpnbCk7CnZvaWQgc2V0X3BpeGVsX2Z1bmN0 aW9ucyhzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCk7CnZvaWQgZnJlZWdmeChzdHJ1Y3QgR2Z4 RWxlbWVudCAqZ2Z4KTsKdm9pZCBkcmF3Z2Z4KHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCxjb25z dCBzdHJ1Y3QgR2Z4RWxlbWVudCAqZ2Z4LAogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNv ZGUsdW5zaWduZWQgaW50IGNvbG9yLGludCBmbGlweCxpbnQgZmxpcHksaW50IHN4LGludCBzeSwK ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCByZWN0YW5nbGUgKmNsaXAsaW50IHRyYW5zcGFy ZW5jeSxpbnQgdHJhbnNwYXJlbnRfY29sb3IpOwp2b2lkIHBkcmF3Z2Z4KHN0cnVjdCBtYW1lX2Jp dG1hcCAqZGVzdCxjb25zdCBzdHJ1Y3QgR2Z4RWxlbWVudCAqZ2Z4LAogICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGNvZGUsdW5zaWduZWQgaW50IGNvbG9yLGludCBmbGlweCxpbnQgZmxpcHks aW50IHN4LGludCBzeSwKICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCByZWN0YW5nbGUgKmNs aXAsaW50IHRyYW5zcGFyZW5jeSxpbnQgdHJhbnNwYXJlbnRfY29sb3IsCiAgICAgICAgICAgICAg ICBVSU5UMzIgcHJpb3JpdHlfbWFzayk7CnZvaWQgbWRyYXdnZngoc3RydWN0IG1hbWVfYml0bWFw ICpkZXN0LGNvbnN0IHN0cnVjdCBHZnhFbGVtZW50ICpnZngsCiAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgY29kZSx1bnNpZ25lZCBpbnQgY29sb3IsaW50IGZsaXB4LGludCBmbGlweSxpbnQg c3gsaW50IHN5LAogICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJlY3RhbmdsZSAqY2xpcCxp bnQgdHJhbnNwYXJlbmN5LGludCB0cmFuc3BhcmVudF9jb2xvciwKICAgICAgICAgICAgICAgIFVJ TlQzMiBwcmlvcml0eV9tYXNrKTsKdm9pZCBjb3B5Yml0bWFwKHN0cnVjdCBtYW1lX2JpdG1hcCAq ZGVzdCxzdHJ1Y3QgbWFtZV9iaXRtYXAgKnNyYyxpbnQgZmxpcHgsaW50IGZsaXB5LGludCBzeCxp bnQgc3ksCiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmVjdGFuZ2xlICpjbGlwLGludCB0 cmFuc3BhcmVuY3ksaW50IHRyYW5zcGFyZW50X2NvbG9yKTsKdm9pZCBjb3B5Yml0bWFwX3JlbWFw KHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCxzdHJ1Y3QgbWFtZV9iaXRtYXAgKnNyYyxpbnQgZmxp cHgsaW50IGZsaXB5LGludCBzeCxpbnQgc3ksCiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg cmVjdGFuZ2xlICpjbGlwLGludCB0cmFuc3BhcmVuY3ksaW50IHRyYW5zcGFyZW50X2NvbG9yKTsK dm9pZCBjb3B5c2Nyb2xsYml0bWFwKHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCxzdHJ1Y3QgbWFt ZV9iaXRtYXAgKnNyYywKICAgICAgICAgICAgICAgIGludCByb3dzLGNvbnN0IGludCAqcm93c2Ny b2xsLGludCBjb2xzLGNvbnN0IGludCAqY29sc2Nyb2xsLAogICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHJlY3RhbmdsZSAqY2xpcCxpbnQgdHJhbnNwYXJlbmN5LGludCB0cmFuc3BhcmVudF9j b2xvcik7CnZvaWQgY29weXNjcm9sbGJpdG1hcF9yZW1hcChzdHJ1Y3QgbWFtZV9iaXRtYXAgKmRl c3Qsc3RydWN0IG1hbWVfYml0bWFwICpzcmMsCiAgICAgICAgICAgICAgICBpbnQgcm93cyxjb25z dCBpbnQgKnJvd3Njcm9sbCxpbnQgY29scyxjb25zdCBpbnQgKmNvbHNjcm9sbCwKICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCByZWN0YW5nbGUgKmNsaXAsaW50IHRyYW5zcGFyZW5jeSxpbnQg dHJhbnNwYXJlbnRfY29sb3IpOwp2b2lkIGRyYXdfc2NhbmxpbmU4KHN0cnVjdCBtYW1lX2JpdG1h cCAqYml0bWFwLGludCB4LGludCB5LGludCBsZW5ndGgsY29uc3QgVUlOVDggKnNyYyxwZW5fdCAq cGVucyxpbnQgdHJhbnNwYXJlbnRfcGVuKTsKdm9pZCBkcmF3X3NjYW5saW5lMTYoc3RydWN0IG1h bWVfYml0bWFwICpiaXRtYXAsaW50IHgsaW50IHksaW50IGxlbmd0aCxjb25zdCBVSU5UMTYgKnNy YyxwZW5fdCAqcGVucyxpbnQgdHJhbnNwYXJlbnRfcGVuKTsKdm9pZCBwZHJhd19zY2FubGluZTgo c3RydWN0IG1hbWVfYml0bWFwICpiaXRtYXAsaW50IHgsaW50IHksaW50IGxlbmd0aCxjb25zdCBV SU5UOCAqc3JjLHBlbl90ICpwZW5zLGludCB0cmFuc3BhcmVudF9wZW4sVUlOVDMyIG9yaWVudCxp bnQgcHJpKTsKdm9pZCBwZHJhd19zY2FubGluZTE2KHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFw LGludCB4LGludCB5LGludCBsZW5ndGgsY29uc3QgVUlOVDE2ICpzcmMscGVuX3QgKnBlbnMsaW50 IHRyYW5zcGFyZW50X3BlbixVSU5UMzIgb3JpZW50LGludCBwcmkpOwp2b2lkIGV4dHJhY3Rfc2Nh bmxpbmU4KHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwLGludCB4LGludCB5LGludCBsZW5ndGgs VUlOVDggKmRzdCk7CnZvaWQgZXh0cmFjdF9zY2FubGluZTE2KHN0cnVjdCBtYW1lX2JpdG1hcCAq Yml0bWFwLGludCB4LGludCB5LGludCBsZW5ndGgsVUlOVDE2ICpkc3QpOwoKCgpleHRlcm4gaW50 IGFscGhhX2FjdGl2ZTsKdm9pZCBhbHBoYV9pbml0KHZvaWQpOwpzdGF0aWMgX19pbmxpbmVfXyB2 b2lkIGFscGhhX3NldF9sZXZlbChpbnQgbGV2ZWwpIHsKICAgICAgICBpZihsZXZlbCA9PSAwKQog ICAgICAgICAgICAgICAgbGV2ZWwgPSAtMTsKICAgICAgICBhbHBoYV9jYWNoZS5hbHBoYXMgPSBh bHBoYV9jYWNoZS5hbHBoYVtsZXZlbCsxXTsKICAgICAgICBhbHBoYV9jYWNoZS5hbHBoYWQgPSBh bHBoYV9jYWNoZS5hbHBoYVsyNTUtbGV2ZWxdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBVSU5UMzIg YWxwaGFfYmxlbmQxNiggVUlOVDMyIGQsIFVJTlQzMiBzICkKewogICAgICAgIGNvbnN0IFVJTlQ4 ICphbHBoYXMgPSBhbHBoYV9jYWNoZS5hbHBoYXM7CiAgICAgICAgY29uc3QgVUlOVDggKmFscGhh ZCA9IGFscGhhX2NhY2hlLmFscGhhZDsKICAgICAgICByZXR1cm4gKGFscGhhc1tzICYgMHgxZl0g fCAoYWxwaGFzWyhzPj41KSAmIDB4MWZdIDw8IDUpIHwgKGFscGhhc1socz4+MTApICYgMHgxZl0g PDwgMTApKQogICAgICAgICAgICAgICAgKyAoYWxwaGFkW2QgJiAweDFmXSB8IChhbHBoYWRbKGQ+ PjUpICYgMHgxZl0gPDwgNSkgfCAoYWxwaGFkWyhkPj4xMCkgJiAweDFmXSA8PCAxMCkpOwp9CgoK c3RhdGljIF9faW5saW5lX18gVUlOVDMyIGFscGhhX2JsZW5kMzIoIFVJTlQzMiBkLCBVSU5UMzIg cyApCnsKICAgICAgICBjb25zdCBVSU5UOCAqYWxwaGFzID0gYWxwaGFfY2FjaGUuYWxwaGFzOwog ICAgICAgIGNvbnN0IFVJTlQ4ICphbHBoYWQgPSBhbHBoYV9jYWNoZS5hbHBoYWQ7CiAgICAgICAg cmV0dXJuIChhbHBoYXNbcyAmIDB4ZmZdIHwgKGFscGhhc1socz4+OCkgJiAweGZmXSA8PCA4KSB8 IChhbHBoYXNbKHM+PjE2KSAmIDB4ZmZdIDw8IDE2KSkKICAgICAgICAgICAgICAgICsgKGFscGhh ZFtkICYgMHhmZl0gfCAoYWxwaGFkWyhkPj44KSAmIDB4ZmZdIDw8IDgpIHwgKGFscGhhZFsoZD4+ MTYpICYgMHhmZl0gPDwgMTYpKTsKfQojIDI0MSAic3JjL2RyYXdnZnguaCIKdm9pZCBjb3B5cm96 Yml0bWFwKHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCxzdHJ1Y3QgbWFtZV9iaXRtYXAgKnNyYywK ICAgICAgICAgICAgICAgIFVJTlQzMiBzdGFydHgsVUlOVDMyIHN0YXJ0eSxpbnQgaW5jeHgsaW50 IGluY3h5LGludCBpbmN5eCxpbnQgaW5jeXksaW50IHdyYXBhcm91bmQsCiAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcmVjdGFuZ2xlICpjbGlwLGludCB0cmFuc3BhcmVuY3ksaW50IHRyYW5z cGFyZW50X2NvbG9yLFVJTlQzMiBwcmlvcml0eSk7Cgp2b2lkIGZpbGxiaXRtYXAoc3RydWN0IG1h bWVfYml0bWFwICpkZXN0LHBlbl90IHBlbixjb25zdCBzdHJ1Y3QgcmVjdGFuZ2xlICpjbGlwKTsK dm9pZCBwbG90X3BpeGVsMihzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcDEsc3RydWN0IG1hbWVf Yml0bWFwICpiaXRtYXAyLGludCB4LGludCB5LHBlbl90IHBlbik7CnZvaWQgZHJhd2dmeHpvb20o IHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdF9ibXAsY29uc3Qgc3RydWN0IEdmeEVsZW1lbnQgKmdm eCwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb2RlLHVuc2lnbmVkIGludCBjb2xvcixp bnQgZmxpcHgsaW50IGZsaXB5LGludCBzeCxpbnQgc3ksCiAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgcmVjdGFuZ2xlICpjbGlwLGludCB0cmFuc3BhcmVuY3ksaW50IHRyYW5zcGFyZW50X2Nv bG9yLGludCBzY2FsZXgsaW50IHNjYWxleSk7CnZvaWQgcGRyYXdnZnh6b29tKCBzdHJ1Y3QgbWFt ZV9iaXRtYXAgKmRlc3RfYm1wLGNvbnN0IHN0cnVjdCBHZnhFbGVtZW50ICpnZngsCiAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgY29kZSx1bnNpZ25lZCBpbnQgY29sb3IsaW50IGZsaXB4LGlu dCBmbGlweSxpbnQgc3gsaW50IHN5LAogICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJlY3Rh bmdsZSAqY2xpcCxpbnQgdHJhbnNwYXJlbmN5LGludCB0cmFuc3BhcmVudF9jb2xvcixpbnQgc2Nh bGV4LGludCBzY2FsZXksCiAgICAgICAgICAgICAgICBVSU5UMzIgcHJpb3JpdHlfbWFzayk7CnZv aWQgbWRyYXdnZnh6b29tKCBzdHJ1Y3QgbWFtZV9iaXRtYXAgKmRlc3RfYm1wLGNvbnN0IHN0cnVj dCBHZnhFbGVtZW50ICpnZngsCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29kZSx1bnNp Z25lZCBpbnQgY29sb3IsaW50IGZsaXB4LGludCBmbGlweSxpbnQgc3gsaW50IHN5LAogICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHJlY3RhbmdsZSAqY2xpcCxpbnQgdHJhbnNwYXJlbmN5LGlu dCB0cmFuc3BhcmVudF9jb2xvcixpbnQgc2NhbGV4LGludCBzY2FsZXksCiAgICAgICAgICAgICAg ICBVSU5UMzIgcHJpb3JpdHlfbWFzayk7Cgp2b2lkIGRyYXdfY3Jvc3NoYWlyKHN0cnVjdCBtYW1l X2JpdG1hcCAqYml0bWFwLGludCB4LGludCB5LGNvbnN0IHN0cnVjdCByZWN0YW5nbGUgKmNsaXAp OwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBzZWN0X3JlY3Qoc3RydWN0IHJlY3RhbmdsZSAqZHN0 LCBjb25zdCBzdHJ1Y3QgcmVjdGFuZ2xlICpzcmMpCnsKICAgICAgICBpZiAoc3JjLT5taW5feCA+ IGRzdC0+bWluX3gpIGRzdC0+bWluX3ggPSBzcmMtPm1pbl94OwogICAgICAgIGlmIChzcmMtPm1h eF94IDwgZHN0LT5tYXhfeCkgZHN0LT5tYXhfeCA9IHNyYy0+bWF4X3g7CiAgICAgICAgaWYgKHNy Yy0+bWluX3kgPiBkc3QtPm1pbl95KSBkc3QtPm1pbl95ID0gc3JjLT5taW5feTsKICAgICAgICBp ZiAoc3JjLT5tYXhfeSA8IGRzdC0+bWF4X3kpIGRzdC0+bWF4X3kgPSBzcmMtPm1heF95Owp9CiMg MTQgInNyYy9tYW1lLmgiIDIKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4 Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMSAzCiMgMzkgIi91c3IvbG9jYWwv Z2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRpby5o IiAzCgoKCgojIDEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4 LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgNDQgIi91c3IvbG9jYWwvZ2NjLTMuMS9s aWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRpby5oIiAyIDMKIyA1 NCAiL3Vzci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9p bmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgRklMRTsKIyA2NCAiL3Vz ci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRl L3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX19GSUxFOwojIDc0ICIvdXNyL2xv Y2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3Rk aW8uaCIgMwojIDEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAxIDMKIyAzMiAiL3Vzci9pbmNsdWRl L2xpYmlvLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDEgMwojIDE0ICIvdXNy L2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1s aWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDMyMSAiL3Vz ci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRl L3N0ZGRlZi5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHdpbnRfdDsKIyAxNSAiL3Vzci9pbmNs dWRlL19HX2NvbmZpZy5oIiAyIDMKIyAyNCAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCiMg MSAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDEgMwojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIg MwojIDEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8z LjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgNDkgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAyIDMK CiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCIgMSAzCiMgNTEgIi91c3IvaW5jbHVkZS93 Y2hhci5oIiAyIDMKIyA2NyAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDMKdHlwZWRlZiBzdHJ1Y3QK ewogIGludCBfX2NvdW50OwogIHVuaW9uCiAgewogICAgd2ludF90IF9fd2NoOwogICAgY2hhciBf X3djaGJbNF07CiAgfSBfX3ZhbHVlOwp9IF9fbWJzdGF0ZV90OwojIDI1ICIvdXNyL2luY2x1ZGUv X0dfY29uZmlnLmgiIDIgMwoKdHlwZWRlZiBzdHJ1Y3QKewogIF9fb2ZmX3QgX19wb3M7CiAgX19t YnN0YXRlX3QgX19zdGF0ZTsKfSBfR19mcG9zX3Q7CnR5cGVkZWYgc3RydWN0CnsKICBfX29mZjY0 X3QgX19wb3M7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKfSBfR19mcG9zNjRfdDsKIyA0NCAiL3Vz ci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2djb252LmgiIDEgMwoj IDI4ICIvdXNyL2luY2x1ZGUvZ2NvbnYuaCIgMwojIDEgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAx IDMKIyA0OCAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEv bGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoj IDQ5ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzCiMgMjkgIi91c3IvaW5jbHVkZS9nY29udi5o IiAyIDMKCgojIDEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4 LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzIgIi91c3IvaW5jbHVkZS9nY29udi5o IiAyIDMKCgoKCgplbnVtCnsKICBfX0dDT05WX09LID0gMCwKICBfX0dDT05WX05PQ09OViwKICBf X0dDT05WX05PREIsCiAgX19HQ09OVl9OT01FTSwKCiAgX19HQ09OVl9FTVBUWV9JTlBVVCwKICBf X0dDT05WX0ZVTExfT1VUUFVULAogIF9fR0NPTlZfSUxMRUdBTF9JTlBVVCwKICBfX0dDT05WX0lO Q09NUExFVEVfSU5QVVQsCgogIF9fR0NPTlZfSUxMRUdBTF9ERVNDUklQVE9SLAogIF9fR0NPTlZf SU5URVJOQUxfRVJST1IKfTsKCgoKZW51bQp7CiAgX19HQ09OVl9JU19MQVNUID0gMHgwMDAxLAog IF9fR0NPTlZfSUdOT1JFX0VSUk9SUyA9IDB4MDAwMgp9OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVw OwpzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGE7CnN0cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3Q7 CnN0cnVjdCBfX2djb252X3RyYW5zX2RhdGE7CgoKCnR5cGVkZWYgaW50ICgqX19nY29udl9mY3Qp IChzdHJ1Y3QgX19nY29udl9zdGVwICosIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSAqLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICoqLCBfX2NvbnN0 IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNo YXIgKiosIHNpemVfdCAqLCBpbnQsIGludCk7CgoKdHlwZWRlZiBpbnQgKCpfX2djb252X2luaXRf ZmN0KSAoc3RydWN0IF9fZ2NvbnZfc3RlcCAqKTsKdHlwZWRlZiB2b2lkICgqX19nY29udl9lbmRf ZmN0KSAoc3RydWN0IF9fZ2NvbnZfc3RlcCAqKTsKCgoKdHlwZWRlZiBpbnQgKCpfX2djb252X3Ry YW5zX2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSAqLCB2b2lkICosCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqKiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLCB1bnNp Z25lZCBjaGFyICoqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICop OwoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19jb250ZXh0X2ZjdCkgKHZvaWQgKiwgX19j b25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGNoYXIgKik7CgoKdHlw ZWRlZiBpbnQgKCpfX2djb252X3RyYW5zX3F1ZXJ5X2ZjdCkgKF9fY29uc3QgY2hhciAqLCBfX2Nv bnN0IGNoYXIgKioqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZV90ICopOwoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19pbml0X2ZjdCkgKHZvaWQgKios IGNvbnN0IGNoYXIgKik7CnR5cGVkZWYgdm9pZCAoKl9fZ2NvbnZfdHJhbnNfZW5kX2ZjdCkgKHZv aWQgKik7CgpzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhCnsKCiAgX19nY29udl90cmFuc19mY3Qg X190cmFuc19mY3Q7CiAgX19nY29udl90cmFuc19jb250ZXh0X2ZjdCBfX3RyYW5zX2NvbnRleHRf ZmN0OwogIF9fZ2NvbnZfdHJhbnNfZW5kX2ZjdCBfX3RyYW5zX2VuZF9mY3Q7CiAgdm9pZCAqX19k YXRhOwogIHN0cnVjdCBfX2djb252X3RyYW5zX2RhdGEgKl9fbmV4dDsKfTsKCgoKc3RydWN0IF9f Z2NvbnZfc3RlcAp7CiAgc3RydWN0IF9fZ2NvbnZfbG9hZGVkX29iamVjdCAqX19zaGxpYl9oYW5k bGU7CiAgX19jb25zdCBjaGFyICpfX21vZG5hbWU7CgogIGludCBfX2NvdW50ZXI7CgogIGNoYXIg Kl9fZnJvbV9uYW1lOwogIGNoYXIgKl9fdG9fbmFtZTsKCiAgX19nY29udl9mY3QgX19mY3Q7CiAg X19nY29udl9pbml0X2ZjdCBfX2luaXRfZmN0OwogIF9fZ2NvbnZfZW5kX2ZjdCBfX2VuZF9mY3Q7 CgoKCiAgaW50IF9fbWluX25lZWRlZF9mcm9tOwogIGludCBfX21heF9uZWVkZWRfZnJvbTsKICBp bnQgX19taW5fbmVlZGVkX3RvOwogIGludCBfX21heF9uZWVkZWRfdG87CgoKICBpbnQgX19zdGF0 ZWZ1bDsKCiAgdm9pZCAqX19kYXRhOwp9OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEKewog IHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmOwogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmZW5kOwoK CgogIGludCBfX2ZsYWdzOwoKCgogIGludCBfX2ludm9jYXRpb25fY291bnRlcjsKCgoKICBpbnQg X19pbnRlcm5hbF91c2U7CgogIF9fbWJzdGF0ZV90ICpfX3N0YXRlcDsKICBfX21ic3RhdGVfdCBf X3N0YXRlOwoKCgogIHN0cnVjdCBfX2djb252X3RyYW5zX2RhdGEgKl9fdHJhbnM7Cn07CgoKCnR5 cGVkZWYgc3RydWN0IF9fZ2NvbnZfaW5mbwp7CiAgc2l6ZV90IF9fbnN0ZXBzOwogIHN0cnVjdCBf X2djb252X3N0ZXAgKl9fc3RlcHM7CiAgX19leHRlbnNpb25fXyBzdHJ1Y3QgX19nY29udl9zdGVw X2RhdGEgX19kYXRhIFtdOwp9ICpfX2djb252X3Q7CiMgNDUgIi91c3IvaW5jbHVkZS9fR19jb25m aWcuaCIgMiAzCnR5cGVkZWYgdW5pb24KewogIHN0cnVjdCBfX2djb252X2luZm8gX19jZDsKICBz dHJ1Y3QKICB7CiAgICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgICBzdHJ1Y3QgX19nY29u dl9zdGVwX2RhdGEgX19kYXRhOwogIH0gX19jb21iaW5lZDsKfSBfR19pY29udl90OwoKdHlwZWRl ZiBpbnQgX0dfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlw ZWRlZiBpbnQgX0dfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsK dHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f IChfX0hJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90IF9fYXR0cmlidXRl X18gKChfX21vZGVfXyAoX19TSV9fKSkpOwojIDMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMiAz CiMgNTMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCiMgMSAiL3Vzci9sb2NhbC9nY2MtMy4xL2xp Yi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIyA0 MyAiL3Vzci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9p bmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3QgX19nbnVjX3ZhX2xp c3Q7CiMgNTQgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMKIyAxNjAgIi91c3IvaW5jbHVkZS9s aWJpby5oIiAzCnN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7CiMgMTcwICIvdXNy L2luY2x1ZGUvbGliaW8uaCIgMwp0eXBlZGVmIHZvaWQgX0lPX2xvY2tfdDsKCgoKCgpzdHJ1Y3Qg X0lPX21hcmtlciB7CiAgc3RydWN0IF9JT19tYXJrZXIgKl9uZXh0OwogIHN0cnVjdCBfSU9fRklM RSAqX3NidWY7CgoKCiAgaW50IF9wb3M7CiMgMTkzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwp9 OwoKCmVudW0gX19jb2RlY3Z0X3Jlc3VsdAp7CiAgX19jb2RlY3Z0X29rLAogIF9fY29kZWN2dF9w YXJ0aWFsLAogIF9fY29kZWN2dF9lcnJvciwKICBfX2NvZGVjdnRfbm9jb252Cn07CiMgMjYxICIv dXNyL2luY2x1ZGUvbGliaW8uaCIgMwpzdHJ1Y3QgX0lPX0ZJTEUgewogIGludCBfZmxhZ3M7CgoK CgogIGNoYXIqIF9JT19yZWFkX3B0cjsKICBjaGFyKiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lP X3JlYWRfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRy OwogIGNoYXIqIF9JT193cml0ZV9lbmQ7CiAgY2hhciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9J T19idWZfZW5kOwoKICBjaGFyICpfSU9fc2F2ZV9iYXNlOwogIGNoYXIgKl9JT19iYWNrdXBfYmFz ZTsKICBjaGFyICpfSU9fc2F2ZV9lbmQ7CgogIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsK CiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47CgogIGludCBfZmlsZW5vOwogIGludCBfYmxrc2l6 ZTsKICBfX29mZl90IF9vbGRfb2Zmc2V0OwoKCgogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1u OwogIHNpZ25lZCBjaGFyIF92dGFibGVfb2Zmc2V0OwogIGNoYXIgX3Nob3J0YnVmWzFdOwoKCgog IF9JT19sb2NrX3QgKl9sb2NrOwojIDMwNSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKICBfX29m ZjY0X3QgX29mZnNldDsKCgoKCgogIHZvaWQgKl9fcGFkMTsKICB2b2lkICpfX3BhZDI7CgogIGlu dCBfbW9kZTsKCiAgY2hhciBfdW51c2VkMlsxNSAqIHNpemVvZiAoaW50KSAtIDIgKiBzaXplb2Yg KHZvaWQgKildOwoKfTsKCgp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfSU9fRklMRTsKCgpzdHJ1 Y3QgX0lPX0ZJTEVfcGx1czsKCmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0 ZGluXzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3Rkb3V0XzsKZXh0ZXJu IHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkZXJyXzsKIyAzNDQgIi91c3IvaW5jbHVk ZS9saWJpby5oIiAzCnR5cGVkZWYgX19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29r aWUsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXpl X3QgX19pb193cml0ZV9mbiAodm9pZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24pOwoKCgoKCgoKdHlwZWRl ZiBpbnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3BvcywgaW50 IF9fdyk7CgoKdHlwZWRlZiBpbnQgX19pb19jbG9zZV9mbiAodm9pZCAqX19jb29raWUpOwojIDM5 NiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAoX0lPX0ZJ TEUgKikgOwpleHRlcm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIGludCBfX292 ZXJmbG93IChfSU9fRklMRSAqLCBpbnQpIDsKZXh0ZXJuIHdpbnRfdCBfX3d1bmRlcmZsb3cgKF9J T19GSUxFICopIDsKZXh0ZXJuIHdpbnRfdCBfX3d1ZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4g d2ludF90IF9fd292ZXJmbG93IChfSU9fRklMRSAqLCB3aW50X3QpIDsKIyA0MjYgIi91c3IvaW5j bHVkZS9saWJpby5oIiAzCmV4dGVybiBpbnQgX0lPX2dldGMgKF9JT19GSUxFICpfX2ZwKSA7CmV4 dGVybiBpbnQgX0lPX3B1dGMgKGludCBfX2MsIF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQg X0lPX2Zlb2YgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJ TEUgKl9fZnApIDsKCmV4dGVybiBpbnQgX0lPX3BlZWtjX2xvY2tlZCAoX0lPX0ZJTEUgKl9fZnAp IDsKCgoKCgpleHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlIChfSU9fRklMRSAqKSA7CmV4dGVybiB2 b2lkIF9JT19mdW5sb2NrZmlsZSAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9JT19mdHJ5bG9j a2ZpbGUgKF9JT19GSUxFICopIDsKIyA0NTYgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCmV4dGVy biBpbnQgX0lPX3Zmc2NhbmYgKF9JT19GSUxFICogX19yZXN0cmljdCwgY29uc3QgY2hhciAqIF9f cmVzdHJpY3QsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0LCBpbnQgKl9f cmVzdHJpY3QpIDsKZXh0ZXJuIGludCBfSU9fdmZwcmludGYgKF9JT19GSUxFICpfX3Jlc3RyaWN0 LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgX19nbnVj X3ZhX2xpc3QpIDsKZXh0ZXJuIF9fc3NpemVfdCBfSU9fcGFkbiAoX0lPX0ZJTEUgKiwgaW50LCBf X3NzaXplX3QpIDsKZXh0ZXJuIHNpemVfdCBfSU9fc2dldG4gKF9JT19GSUxFICosIHZvaWQgKiwg c2l6ZV90KSA7CgpleHRlcm4gX19vZmY2NF90IF9JT19zZWVrb2ZmIChfSU9fRklMRSAqLCBfX29m ZjY0X3QsIGludCwgaW50KSA7CmV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxF ICosIF9fb2ZmNjRfdCwgaW50KSA7CgpleHRlcm4gdm9pZCBfSU9fZnJlZV9iYWNrdXBfYXJlYSAo X0lPX0ZJTEUgKikgOwojIDc1ICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1w Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMiAzCiMgODkgIi91c3IvbG9jYWwvZ2Nj LTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRpby5oIiAz CnR5cGVkZWYgX0dfZnBvc190IGZwb3NfdDsKIyAxMzggIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIv Z2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL3Vz ci9pbmNsdWRlL2JpdHMvc3RkaW9fbGltLmgiIDEgMwojIDEzOSAiL3Vzci9sb2NhbC9nY2MtMy4x L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoK CgpleHRlcm4gRklMRSAqc3RkaW47CmV4dGVybiBGSUxFICpzdGRvdXQ7CmV4dGVybiBGSUxFICpz dGRlcnI7CgoKCgoKCmV4dGVybiBpbnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9fZmlsZW5hbWUp IDsKCmV4dGVybiBpbnQgcmVuYW1lIChfX2NvbnN0IGNoYXIgKl9fb2xkLCBfX2NvbnN0IGNoYXIg Kl9fbmV3KSA7CgoKCgpleHRlcm4gRklMRSAqdG1wZmlsZSAodm9pZCkgOwojIDE3MCAiL3Vzci9s b2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0 ZGlvLmgiIDMKZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAqX19zKSA7CgoKCgpleHRlcm4gY2hh ciAqdG1wbmFtX3IgKGNoYXIgKl9fcykgOwojIDE4NyAiL3Vzci9sb2NhbC9nY2MtMy4xL2xpYi9n Y2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGNo YXIgKnRlbXBuYW0gKF9fY29uc3QgY2hhciAqX19kaXIsIF9fY29uc3QgY2hhciAqX19wZngpCiAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKCgoKCmV4dGVybiBpbnQgZmNsb3NlIChG SUxFICpfX3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3RyZWFtKSA7CgoK CmV4dGVybiBpbnQgZmZsdXNoX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwojIDIxMCAiL3Vz ci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRl L3N0ZGlvLmgiIDMKZXh0ZXJuIEZJTEUgKmZvcGVuIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19tb2RlcykgOwoKZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3Ry aWN0IF9fbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry ZWFtKSA7CiMgMjQwICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1saW51 eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gRklMRSAqZmRvcGVuIChpbnQgX19m ZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7CiMgMjYzICIvdXNyL2xvY2FsL2djYy0zLjEvbGli L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4g dm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3Qg X19idWYpIDsKCgoKZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt LCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAogICAgICAgICAgICAgICAgICAgIGludCBfX21vZGVz LCBzaXplX3QgX19uKSA7CgoKCgpleHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJp Y3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZV90IF9fc2l6ZSkgOwoKCmV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3Ry ZWFtKSA7CgoKCgpleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0s CiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAu Li4pIDsKCmV4dGVybiBpbnQgcHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3Jt YXQsIC4uLikgOwoKZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAg ICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikg OwoKCmV4dGVybiBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNo YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9s aXN0IF9fYXJnKSA7CgpleHRlcm4gaW50IHZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgOwoKZXh0ZXJuIGludCB2c3By aW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv cm1hdCwKICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIDsKCgoKZXh0 ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwK ICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAu Li4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDQpKSk7 CgpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21h eGxlbiwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv cm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0 X18gKF9fcHJpbnRmX18sIDMsIDApKSk7CiMgMzM0ICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2dj Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50 IGZzY2FuZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAgICAgICAgICAgIF9f Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNjYW5m IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBz c2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICBf X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwojIDM2MCAiL3Vzci9sb2Nh bC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGlv LmgiIDMKZXh0ZXJuIGludCBmZ2V0YyAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBnZXRj IChGSUxFICpfX3N0cmVhbSkgOwoKCmV4dGVybiBpbnQgZ2V0Y2hhciAodm9pZCkgOwoKCgoKCgoK ZXh0ZXJuIGludCBnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGdl dGNoYXJfdW5sb2NrZWQgKHZvaWQpIDsKCgoKCmV4dGVybiBpbnQgZmdldGNfdW5sb2NrZWQgKEZJ TEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0 cmVhbSkgOwpleHRlcm4gaW50IHB1dGMgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CgoKZXh0 ZXJuIGludCBwdXRjaGFyIChpbnQgX19jKSA7CgoKCgoKCgpleHRlcm4gaW50IGZwdXRjX3VubG9j a2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIGludCBwdXRjX3VubG9j a2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IHB1dGNoYXJfdW5sb2Nr ZWQgKGludCBfX2MpIDsKCgoKCgpleHRlcm4gaW50IGdldHcgKEZJTEUgKl9fc3RyZWFtKSA7CgoK ZXh0ZXJuIGludCBwdXR3IChpbnQgX193LCBGSUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIGNo YXIgKmZnZXRzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwgRklMRSAqX19yZXN0cmlj dCBfX3N0cmVhbSkKICAgICA7CiMgNDI2ICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIv aTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gY2hhciAqZ2V0 cyAoY2hhciAqX19zKSA7CiMgNDUwICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4 Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZwdXRzIChf X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQog ICAgIDsKIyA0NjAgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4 LWdudS8zLjEvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgcHV0cyAoX19jb25zdCBjaGFy ICpfX3MpIDsKCgoKZXh0ZXJuIGludCB1bmdldGMgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7 CgoKCmV4dGVybiBzaXplX3QgZnJlYWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBf X3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3Qg X19zdHJlYW0pIDsKCmV4dGVybiBzaXplX3QgZndyaXRlIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJp Y3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19u LCBGSUxFICpfX3Jlc3RyaWN0IF9fcykgOwoKCgpleHRlcm4gc2l6ZV90IGZyZWFkX3VubG9ja2Vk ICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CmV4 dGVybiBzaXplX3QgZndyaXRlX3VubG9ja2VkIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19w dHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg X19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZzZWVrIChG SUxFICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSkgOwoKZXh0ZXJuIGxv bmcgaW50IGZ0ZWxsIChGSUxFICpfX3N0cmVhbSkgOwoKZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxF ICpfX3N0cmVhbSkgOwojIDUwNCAiL3Vzci9sb2NhbC9nY2MtMy4xL2xpYi9nY2MtbGliL2k2ODYt cGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmZ2V0cG9zIChG SUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9fcmVzdHJpY3QgX19wb3MpCiAgICAg OwoKZXh0ZXJuIGludCBmc2V0cG9zIChGSUxFICpfX3N0cmVhbSwgX19jb25zdCBmcG9zX3QgKl9f cG9zKSA7CiMgNTQwICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1saW51 eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAq X19zdHJlYW0pIDsKCmV4dGVybiBpbnQgZmVvZiAoRklMRSAqX19zdHJlYW0pIDsKCmV4dGVybiBp bnQgZmVycm9yIChGSUxFICpfX3N0cmVhbSkgOwoKCgpleHRlcm4gdm9pZCBjbGVhcmVycl91bmxv Y2tlZCAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBmZW9mX3VubG9ja2VkIChGSUxFICpf X3N0cmVhbSkgOwpleHRlcm4gaW50IGZlcnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsK CgoKCmV4dGVybiB2b2lkIHBlcnJvciAoX19jb25zdCBjaGFyICpfX3MpIDsKCgoKCmV4dGVybiBp bnQgc3lzX25lcnI7CmV4dGVybiBfX2NvbnN0IGNoYXIgKl9fY29uc3Qgc3lzX2Vycmxpc3RbXTsK IyA1NzEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8z LjEvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkg OwoKCgoKZXh0ZXJuIGludCBmaWxlbm9fdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgoK CmV4dGVybiBGSUxFICpwb3BlbiAoX19jb25zdCBjaGFyICpfX2NvbW1hbmQsIF9fY29uc3QgY2hh ciAqX19tb2RlcykgOwoKCmV4dGVybiBpbnQgcGNsb3NlIChGSUxFICpfX3N0cmVhbSkgOwoKCgoK CmV4dGVybiBjaGFyICpjdGVybWlkIChjaGFyICpfX3MpIDsKIyA2MTggIi91c3IvbG9jYWwvZ2Nj LTMuMS9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRpby5oIiAz CmV4dGVybiB2b2lkIGZsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKCgoKZXh0ZXJuIGludCBm dHJ5bG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7CgoKZXh0ZXJuIHZvaWQgZnVubG9ja2ZpbGUg KEZJTEUgKl9fc3RyZWFtKSA7CiMgNjM5ICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIv aTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMwojIDEgIi91c3IvaW5jbHVk ZS9iaXRzL3N0ZGlvLmgiIDEgMwojIDMzICIvdXNyL2luY2x1ZGUvYml0cy9zdGRpby5oIiAzCmV4 dGVybiBfX2lubGluZSBpbnQKdnByaW50ZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10 LCBfX2dudWNfdmFfbGlzdCBfX2FyZykKewogIHJldHVybiB2ZnByaW50ZiAoc3Rkb3V0LCBfX2Zt dCwgX19hcmcpOwp9CgoKZXh0ZXJuIF9faW5saW5lIGludApnZXRjaGFyICh2b2lkKQp7CiAgcmV0 dXJuIF9JT19nZXRjIChzdGRpbik7Cn0KCgoKCmV4dGVybiBfX2lubGluZSBpbnQKZ2V0Y191bmxv Y2tlZCAoRklMRSAqX19mcCkKewogIHJldHVybiAoKF9fZnApLT5fSU9fcmVhZF9wdHIgPj0gKF9f ZnApLT5fSU9fcmVhZF9lbmQgPyBfX3VmbG93IChfX2ZwKSA6ICoodW5zaWduZWQgY2hhciAqKSAo X19mcCktPl9JT19yZWFkX3B0cisrKTsKfQoKCmV4dGVybiBfX2lubGluZSBpbnQKZ2V0Y2hhcl91 bmxvY2tlZCAodm9pZCkKewogIHJldHVybiAoKHN0ZGluKS0+X0lPX3JlYWRfcHRyID49IChzdGRp biktPl9JT19yZWFkX2VuZCA/IF9fdWZsb3cgKHN0ZGluKSA6ICoodW5zaWduZWQgY2hhciAqKSAo c3RkaW4pLT5fSU9fcmVhZF9wdHIrKyk7Cn0KCgoKCmV4dGVybiBfX2lubGluZSBpbnQKcHV0Y2hh ciAoaW50IF9fYykKewogIHJldHVybiBfSU9fcHV0YyAoX19jLCBzdGRvdXQpOwp9CgoKCgpleHRl cm4gX19pbmxpbmUgaW50CmZwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkK ewogIHJldHVybiAoKChfX3N0cmVhbSktPl9JT193cml0ZV9wdHIgPj0gKF9fc3RyZWFtKS0+X0lP X3dyaXRlX2VuZCkgPyBfX292ZXJmbG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNoYXIpIChfX2Mp KSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIrKyA9IChfX2Mp KSk7Cn0KCgoKCgpleHRlcm4gX19pbmxpbmUgaW50CnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJ TEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJuICgoKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0ciA+PSAo X19zdHJlYW0pLT5fSU9fd3JpdGVfZW5kKSA/IF9fb3ZlcmZsb3cgKF9fc3RyZWFtLCAodW5zaWdu ZWQgY2hhcikgKF9fYykpIDogKHVuc2lnbmVkIGNoYXIpICgqKF9fc3RyZWFtKS0+X0lPX3dyaXRl X3B0cisrID0gKF9fYykpKTsKfQoKCmV4dGVybiBfX2lubGluZSBpbnQKcHV0Y2hhcl91bmxvY2tl ZCAoaW50IF9fYykKewogIHJldHVybiAoKChzdGRvdXQpLT5fSU9fd3JpdGVfcHRyID49IChzdGRv dXQpLT5fSU9fd3JpdGVfZW5kKSA/IF9fb3ZlcmZsb3cgKHN0ZG91dCwgKHVuc2lnbmVkIGNoYXIp IChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihzdGRvdXQpLT5fSU9fd3JpdGVfcHRyKysgPSAo X19jKSkpOwp9CiMgMTExICIvdXNyL2luY2x1ZGUvYml0cy9zdGRpby5oIiAzCmV4dGVybiBfX2lu bGluZSBpbnQKZmVvZl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pCnsKICByZXR1cm4gKCgoX19z dHJlYW0pLT5fZmxhZ3MgJiAweDEwKSAhPSAwKTsKfQoKCmV4dGVybiBfX2lubGluZSBpbnQKZmVy cm9yX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkKewogIHJldHVybiAoKChfX3N0cmVhbSktPl9m bGFncyAmIDB4MjApICE9IDApOwp9CiMgNjQwICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1s aWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMiAzCgoKCiMgMTUgInNy Yy9tYW1lLmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDEgMwojIDI4ICIvdXNyL2lu Y2x1ZGUvc3RyaW5nLmgiIDMKCgoKCgojIDEgIi91c3IvbG9jYWwvZ2NjLTMuMS9saWIvZ2NjLWxp Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzQgIi91c3Iv aW5jbHVkZS9zdHJpbmcuaCIgMiAzCgoKCmV4dGVybiB2b2lkICptZW1jcHkgKHZvaWQgKl9fcmVz dHJpY3QgX19kZXN0LAogICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHZvaWQgKl9fcmVzdHJp Y3QgX19zcmMsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gdm9pZCAqbWVtbW92ZSAodm9pZCAqX19k ZXN0LCBfX2NvbnN0IHZvaWQgKl9fc3JjLCBzaXplX3QgX19uKQogICAgIDsKCgoKCgpleHRlcm4g dm9pZCAqbWVtY2NweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3Qgdm9pZCAqX19y ZXN0cmljdCBfX3NyYywKICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MsIHNpemVfdCBfX24p CiAgICAgOwoKCgoKZXh0ZXJuIHZvaWQgKm1lbXNldCAodm9pZCAqX19zLCBpbnQgX19jLCBzaXpl X3QgX19uKSA7CgoKZXh0ZXJuIGludCBtZW1jbXAgKF9fY29uc3Qgdm9pZCAqX19zMSwgX19jb25z dCB2b2lkICpfX3MyLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp OwoKCmV4dGVybiB2b2lkICptZW1jaHIgKF9fY29uc3Qgdm9pZCAqX19zLCBpbnQgX19jLCBzaXpl X3QgX19uKQogICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKIyA3NyAiL3Vzci9pbmNs dWRlL3N0cmluZy5oIiAzCmV4dGVybiBjaGFyICpzdHJjcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19k ZXN0LCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCiAgICAgOwoKZXh0ZXJuIGNoYXIg KnN0cm5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAgICAgICAgICAgICAgICAg X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKSA7CgoKZXh0ZXJuIGNo YXIgKnN0cmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX3NyYykKICAgICA7CgpleHRlcm4gY2hhciAqc3RybmNhdCAoY2hhciAqX19yZXN0cmlj dCBfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywKICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCBfX24pIDsKCgpleHRlcm4gaW50IHN0cmNtcCAoX19jb25zdCBjaGFyICpf X3MxLCBfX2NvbnN0IGNoYXIgKl9fczIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7 CgpleHRlcm4gaW50IHN0cm5jbXAgKF9fY29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpf X3MyLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCmV4dGVy biBpbnQgc3RyY29sbCAoX19jb25zdCBjaGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIpCiAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgpleHRlcm4gc2l6ZV90IHN0cnhmcm0gKGNo YXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikgOwojIDEyMCAiL3Vzci9pbmNsdWRlL3N0 cmluZy5oIiAzCmV4dGVybiBjaGFyICpzdHJkdXAgKF9fY29uc3QgY2hhciAqX19zKSBfX2F0dHJp YnV0ZV9fICgoX19tYWxsb2NfXykpOwojIDE1NSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzCmV4 dGVybiBjaGFyICpzdHJjaHIgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19jKSBfX2F0dHJpYnV0 ZV9fICgoX19wdXJlX18pKTsKCmV4dGVybiBjaGFyICpzdHJyY2hyIChfX2NvbnN0IGNoYXIgKl9f cywgaW50IF9fYykgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CiMgMTY3ICIvdXNyL2luY2x1 ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIHNpemVfdCBzdHJjc3BuIChfX2NvbnN0IGNoYXIgKl9fcywg X19jb25zdCBjaGFyICpfX3JlamVjdCkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsK CgpleHRlcm4gc2l6ZV90IHN0cnNwbiAoX19jb25zdCBjaGFyICpfX3MsIF9fY29uc3QgY2hhciAq X19hY2NlcHQpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgpleHRlcm4gY2hhciAq c3RycGJyayAoX19jb25zdCBjaGFyICpfX3MsIF9fY29uc3QgY2hhciAqX19hY2NlcHQpCiAgICAg X19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgpleHRlcm4gY2hhciAqc3Ryc3RyIChfX2NvbnN0 IGNoYXIgKl9faGF5c3RhY2ssIF9fY29uc3QgY2hhciAqX19uZWVkbGUpCiAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fcHVyZV9fKSk7CiMgMTg3ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMKZXh0ZXJu IGNoYXIgKnN0cnRvayAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2RlbGltKQogICAgIDsKCgoKZXh0ZXJuIGNoYXIgKl9fc3RydG9rX3IgKGNoYXIgKl9f cmVzdHJpY3QgX19zLAogICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jl c3RyaWN0IF9fZGVsaW0sCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmlj dCBfX3NhdmVfcHRyKSA7CgpleHRlcm4gY2hhciAqc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3Qg X19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKICAgICAgICAgICAgICAgICAg ICAgICBjaGFyICoqX19yZXN0cmljdCBfX3NhdmVfcHRyKSA7CiMgMjE4ICIvdXNyL2luY2x1ZGUv c3RyaW5nLmgiIDMKZXh0ZXJuIHNpemVfdCBzdHJsZW4gKF9fY29uc3QgY2hhciAqX19zKSBfX2F0 dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKIyAyMjkgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMwpl eHRlcm4gY2hhciAqc3RyZXJyb3IgKGludCBfX2Vycm51bSkgOwoKCgpleHRlcm4gY2hhciAqc3Ry ZXJyb3JfciAoaW50IF9fZXJybnVtLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuKSA7CgoK CgpleHRlcm4gdm9pZCBfX2J6ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIDsKCgoKZXh0ZXJu IHZvaWQgYmNvcHkgKF9fY29uc3Qgdm9pZCAqX19zcmMsIHZvaWQgKl9fZGVzdCwgc2l6ZV90IF9f bikgOwoKCmV4dGVybiB2b2lkIGJ6ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIDsKCgpleHRl cm4gaW50IGJjbXAgKF9fY29uc3Qgdm9pZCAqX19zMSwgX19jb25zdCB2b2lkICpfX3MyLCBzaXpl X3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCmV4dGVybiBjaGFyICpp bmRleCAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVf XykpOwoKCmV4dGVybiBjaGFyICpyaW5kZXggKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19jKSBf X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgoKZXh0ZXJuIGludCBmZnMgKGludCBfX2kpIF9f YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyAyNzIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIg MwpleHRlcm4gaW50IHN0cmNhc2VjbXAgKF9fY29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFy ICpfX3MyKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCmV4dGVybiBpbnQgc3Ry bmNhc2VjbXAgKF9fY29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpfX3MyLCBzaXplX3Qg X19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwojIDI5NCAiL3Vzci9pbmNsdWRl L3N0cmluZy5oIiAzCmV4dGVybiBjaGFyICpzdHJzZXAgKGNoYXIgKipfX3Jlc3RyaWN0IF9fc3Ry aW5ncCwKICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVs aW0pIDsKIyAzNTcgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9i aXRzL3N0cmluZy5oIiAxIDMKIyAzNTggIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMiAzCgoKIyAx ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDEgMwojIDUyICIvdXNyL2luY2x1ZGUvYml0 cy9zdHJpbmcyLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvZW5kaWFuLmgiIDEgMwojIDM3ICIvdXNy L2luY2x1ZGUvZW5kaWFuLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9lbmRpYW4uaCIgMSAz CiMgMzggIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzCiMgNTMgIi91c3IvaW5jbHVkZS9iaXRz L3N0cmluZzIuaCIgMiAzCiMgMzc3ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKZXh0 ZXJuIHZvaWQgKl9fcmF3bWVtY2hyIChjb25zdCB2b2lkICpfX3MsIGludCBfX2MpOwojIDQwNSAi L3Vzci9pbmNsdWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiBfX2lubGluZSBjaGFyICpfX3N0 cmNweV9zbWFsbCAoY2hhciAqLCBfX3VpbnQxNl90LCBfX3VpbnQxNl90LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF9fdWludDMyX3QsIF9fdWludDMyX3QsIHNpemVfdCk7 CmV4dGVybiBfX2lubGluZSBjaGFyICoKX19zdHJjcHlfc21hbGwgKGNoYXIgKl9fZGVzdCwKICAg ICAgICAgICAgICAgIF9fdWludDE2X3QgX19zcmMwXzIsIF9fdWludDE2X3QgX19zcmM0XzIsCiAg ICAgICAgICAgICAgICBfX3VpbnQzMl90IF9fc3JjMF80LCBfX3VpbnQzMl90IF9fc3JjNF80LAog ICAgICAgICAgICAgICAgc2l6ZV90IF9fc3JjbGVuKQp7CiAgdW5pb24gewogICAgX191aW50MzJf dCBfX3VpOwogICAgX191aW50MTZfdCBfX3VzaTsKICAgIHVuc2lnbmVkIGNoYXIgX191YzsKICB9 ICpfX3UgPSAodm9pZCAqKSBfX2Rlc3Q7CiAgc3dpdGNoICgodW5zaWduZWQgaW50KSBfX3NyY2xl bikKICAgIHsKICAgIGNhc2UgMToKICAgICAgX191LT5fX3VjID0gJ1wwJzsKICAgICAgYnJlYWs7 CiAgICBjYXNlIDI6CiAgICAgIF9fdS0+X191c2kgPSBfX3NyYzBfMjsKICAgICAgYnJlYWs7CiAg ICBjYXNlIDM6CiAgICAgIF9fdS0+X191c2kgPSBfX3NyYzBfMjsKICAgICAgX191ID0gX19leHRl bnNpb25fXyAoKHZvaWQgKikgX191ICsgMik7CiAgICAgIF9fdS0+X191YyA9ICdcMCc7CiAgICAg IGJyZWFrOwogICAgY2FzZSA0OgogICAgICBfX3UtPl9fdWkgPSBfX3NyYzBfNDsKICAgICAgYnJl YWs7CiAgICBjYXNlIDU6CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBf X2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VjID0gJ1wwJzsK ICAgICAgYnJlYWs7CiAgICBjYXNlIDY6CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAg ICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3Vz aSA9IF9fc3JjNF8yOwogICAgICBicmVhazsKICAgIGNhc2UgNzoKICAgICAgX191LT5fX3VpID0g X19zcmMwXzQ7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDQpOwog ICAgICBfX3UtPl9fdXNpID0gX19zcmM0XzI7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2 b2lkICopIF9fdSArIDIpOwogICAgICBfX3UtPl9fdWMgPSAnXDAnOwogICAgICBicmVhazsKICAg IGNhc2UgODoKICAgICAgX191LT5fX3VpID0gX19zcmMwXzQ7CiAgICAgIF9fdSA9IF9fZXh0ZW5z aW9uX18gKCh2b2lkICopIF9fdSArIDQpOwogICAgICBfX3UtPl9fdWkgPSBfX3NyYzRfNDsKICAg ICAgYnJlYWs7CiAgICB9CiAgcmV0dXJuIF9fZGVzdDsKfQojIDg5MyAiL3Vzci9pbmNsdWRlL2Jp dHMvc3RyaW5nMi5oIiAzCmV4dGVybiBfX2lubGluZSBzaXplX3QgX19zdHJjc3BuX2MxIChfX2Nv bnN0IGNoYXIgKl9fcywgaW50IF9fcmVqZWN0KTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0 cmNzcG5fYzEgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QpCnsKICByZWdpc3RlciBz aXplX3QgX19yZXN1bHQgPSAwOwogIHdoaWxlIChfX3NbX19yZXN1bHRdICE9ICdcMCcgJiYgX19z W19fcmVzdWx0XSAhPSBfX3JlamVjdCkKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0 Owp9CgpleHRlcm4gX19pbmxpbmUgc2l6ZV90IF9fc3RyY3Nwbl9jMiAoX19jb25zdCBjaGFyICpf X3MsIGludCBfX3JlamVjdDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgX19yZWplY3QyKTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cmNzcG5fYzIgKF9fY29u c3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QxLCBpbnQgX19yZWplY3QyKQp7CiAgcmVnaXN0ZXIg c2l6ZV90IF9fcmVzdWx0ID0gMDsKICB3aGlsZSAoX19zW19fcmVzdWx0XSAhPSAnXDAnICYmIF9f c1tfX3Jlc3VsdF0gIT0gX19yZWplY3QxCiAgICAgICAgICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19y ZWplY3QyKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1bHQ7Cn0KCmV4dGVybiBfX2lu bGluZSBzaXplX3QgX19zdHJjc3BuX2MzIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fcmVqZWN0 MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3JlamVjdDIsIGlu dCBfX3JlamVjdDMpOwpleHRlcm4gX19pbmxpbmUgc2l6ZV90Cl9fc3RyY3Nwbl9jMyAoX19jb25z dCBjaGFyICpfX3MsIGludCBfX3JlamVjdDEsIGludCBfX3JlamVjdDIsCiAgICAgICAgICAgICAg aW50IF9fcmVqZWN0MykKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9IDA7CiAgd2hpbGUg KF9fc1tfX3Jlc3VsdF0gIT0gJ1wwJyAmJiBfX3NbX19yZXN1bHRdICE9IF9fcmVqZWN0MQogICAg ICAgICAmJiBfX3NbX19yZXN1bHRdICE9IF9fcmVqZWN0MiAmJiBfX3NbX19yZXN1bHRdICE9IF9f cmVqZWN0MykKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CiMgOTUwICIvdXNy L2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKZXh0ZXJuIF9faW5saW5lIHNpemVfdCBfX3N0cnNw bl9jMSAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdCk7CmV4dGVybiBfX2lubGluZSBz aXplX3QKX19zdHJzcG5fYzEgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19hY2NlcHQpCnsKICBy ZWdpc3RlciBzaXplX3QgX19yZXN1bHQgPSAwOwoKICB3aGlsZSAoX19zW19fcmVzdWx0XSA9PSBf X2FjY2VwdCkKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CgpleHRlcm4gX19p bmxpbmUgc2l6ZV90IF9fc3Ryc3BuX2MyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0 MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYWNjZXB0Mik7CmV4 dGVybiBfX2lubGluZSBzaXplX3QKX19zdHJzcG5fYzIgKF9fY29uc3QgY2hhciAqX19zLCBpbnQg X19hY2NlcHQxLCBpbnQgX19hY2NlcHQyKQp7CiAgcmVnaXN0ZXIgc2l6ZV90IF9fcmVzdWx0ID0g MDsKCiAgd2hpbGUgKF9fc1tfX3Jlc3VsdF0gPT0gX19hY2NlcHQxIHx8IF9fc1tfX3Jlc3VsdF0g PT0gX19hY2NlcHQyKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1bHQ7Cn0KCmV4dGVy biBfX2lubGluZSBzaXplX3QgX19zdHJzcG5fYzMgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19h Y2NlcHQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19hY2NlcHQy LCBpbnQgX19hY2NlcHQzKTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cnNwbl9jMyAoX19j b25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsIGludCBfX2FjY2VwdDIsIGludCBfX2FjY2Vw dDMpCnsKICByZWdpc3RlciBzaXplX3QgX19yZXN1bHQgPSAwOwoKICB3aGlsZSAoX19zW19fcmVz dWx0XSA9PSBfX2FjY2VwdDEgfHwgX19zW19fcmVzdWx0XSA9PSBfX2FjY2VwdDIKICAgICAgICAg fHwgX19zW19fcmVzdWx0XSA9PSBfX2FjY2VwdDMpCiAgICArK19fcmVzdWx0OwogIHJldHVybiBf X3Jlc3VsdDsKfQojIDEwMDcgIi91c3IvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMwpleHRlcm4g X19pbmxpbmUgY2hhciAqX19zdHJwYnJrX2MyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNj ZXB0MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2FjY2VwdDIp OwpleHRlcm4gX19pbmxpbmUgY2hhciAqCl9fc3RycGJya19jMiAoX19jb25zdCBjaGFyICpfX3Ms IGludCBfX2FjY2VwdDEsIGludCBfX2FjY2VwdDIpCnsKCiAgd2hpbGUgKCpfX3MgIT0gJ1wwJyAm JiAqX19zICE9IF9fYWNjZXB0MSAmJiAqX19zICE9IF9fYWNjZXB0MikKICAgICsrX19zOwogIHJl dHVybiAqX19zID09ICdcMCcgPyAoKHZvaWQgKikwKSA6IChjaGFyICopIChzaXplX3QpIF9fczsK fQoKZXh0ZXJuIF9faW5saW5lIGNoYXIgKl9fc3RycGJya19jMyAoX19jb25zdCBjaGFyICpfX3Ms IGludCBfX2FjY2VwdDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg X19hY2NlcHQyLCBpbnQgX19hY2NlcHQzKTsKZXh0ZXJuIF9faW5saW5lIGNoYXIgKgpfX3N0cnBi cmtfYzMgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19hY2NlcHQxLCBpbnQgX19hY2NlcHQyLAog ICAgICAgICAgICAgIGludCBfX2FjY2VwdDMpCnsKCiAgd2hpbGUgKCpfX3MgIT0gJ1wwJyAmJiAq X19zICE9IF9fYWNjZXB0MSAmJiAqX19zICE9IF9fYWNjZXB0MgogICAgICAgICAmJiAqX19zICE9 IF9fYWNjZXB0MykKICAgICsrX19zOwogIHJldHVybiAqX19zID09ICdcMCcgPyAoKHZvaWQgKikw KSA6IChjaGFyICopIChzaXplX3QpIF9fczsKfQojIDEwNTkgIi91c3IvaW5jbHVkZS9iaXRzL3N0 cmluZzIuaCIgMwpleHRlcm4gX19pbmxpbmUgY2hhciAqX19zdHJ0b2tfcl8xYyAoY2hhciAqX19z LCBjaGFyIF9fc2VwLCBjaGFyICoqX19uZXh0cCk7CmV4dGVybiBfX2lubGluZSBjaGFyICoKX19z dHJ0b2tfcl8xYyAoY2hhciAqX19zLCBjaGFyIF9fc2VwLCBjaGFyICoqX19uZXh0cCkKewogIGNo YXIgKl9fcmVzdWx0OwogIGlmIChfX3MgPT0gKCh2b2lkICopMCkpCiAgICBfX3MgPSAqX19uZXh0 cDsKICB3aGlsZSAoKl9fcyA9PSBfX3NlcCkKICAgICsrX19zOwogIF9fcmVzdWx0ID0gKCh2b2lk ICopMCk7CiAgaWYgKCpfX3MgIT0gJ1wwJykKICAgIHsKICAgICAgX19yZXN1bHQgPSBfX3MrKzsK ICAgICAgd2hpbGUgKCpfX3MgIT0gJ1wwJykKICAgICAgICBpZiAoKl9fcysrID09IF9fc2VwKQog ICAgICAgICAgewogICAgICAgICAgICBfX3NbLTFdID0gJ1wwJzsKICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICB9CiAgICAgICpfX25leHRwID0gX19zOwogICAgfQogIHJldHVybiBfX3Jlc3Vs dDsKfQojIDEwOTEgIi91c3IvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMwpleHRlcm4gY2hhciAq X19zdHJzZXBfZyAoY2hhciAqKl9fc3RyaW5ncCwgX19jb25zdCBjaGFyICpfX2RlbGltKTsKIyAx MTA5ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKZXh0ZXJuIF9faW5saW5lIGNoYXIg Kl9fc3Ryc2VwXzFjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0KTsKZXh0ZXJuIF9faW5saW5l IGNoYXIgKgpfX3N0cnNlcF8xYyAoY2hhciAqKl9fcywgY2hhciBfX3JlamVjdCkKewogIHJlZ2lz dGVyIGNoYXIgKl9fcmV0dmFsID0gKl9fczsKICBpZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkg JiYgKCpfX3MgPSAoX19leHRlbnNpb25fXyAoX19idWlsdGluX2NvbnN0YW50X3AgKF9fcmVqZWN0 KSAmJiAoX19yZWplY3QpID09ICdcMCcgPyAoY2hhciAqKSBfX3Jhd21lbWNociAoX19yZXR2YWws IF9fcmVqZWN0KSA6IHN0cmNociAoX19yZXR2YWwsIF9fcmVqZWN0KSkpKSAhPSAoKHZvaWQgKikw KSkKICAgICooKl9fcykrKyA9ICdcMCc7CiAgcmV0dXJuIF9fcmV0dmFsOwp9CgpleHRlcm4gX19p bmxpbmUgY2hhciAqX19zdHJzZXBfMmMgKGNoYXIgKipfX3MsIGNoYXIgX19yZWplY3QxLCBjaGFy IF9fcmVqZWN0Mik7CmV4dGVybiBfX2lubGluZSBjaGFyICoKX19zdHJzZXBfMmMgKGNoYXIgKipf X3MsIGNoYXIgX19yZWplY3QxLCBjaGFyIF9fcmVqZWN0MikKewogIHJlZ2lzdGVyIGNoYXIgKl9f cmV0dmFsID0gKl9fczsKICBpZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkpCiAgICB7CiAgICAg IHJlZ2lzdGVyIGNoYXIgKl9fY3AgPSBfX3JldHZhbDsKICAgICAgd2hpbGUgKDEpCiAgICAgICAg ewogICAgICAgICAgaWYgKCpfX2NwID09ICdcMCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICBfX2NwID0gKCh2b2lkICopMCk7CiAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAg ICAgICAgaWYgKCpfX2NwID09IF9fcmVqZWN0MSB8fCAqX19jcCA9PSBfX3JlamVjdDIpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAqX19jcCsrID0gJ1wwJzsKICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgfQogICAgICAgICAgKytfX2NwOwogICAgICAgIH0KICAgICAgKl9fcyA9 IF9fY3A7CiAgICB9CiAgcmV0dXJuIF9fcmV0dmFsOwp9CgpleHRlcm4gX19pbmxpbmUgY2hhciAq X19zdHJzZXBfM2MgKGNoYXIgKipfX3MsIGNoYXIgX19yZWplY3QxLCBjaGFyIF9fcmVqZWN0MiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIF9fcmVqZWN0Myk7CmV4dGVy biBfX2lubGluZSBjaGFyICoKX19zdHJzZXBfM2MgKGNoYXIgKipfX3MsIGNoYXIgX19yZWplY3Qx LCBjaGFyIF9fcmVqZWN0MiwgY2hhciBfX3JlamVjdDMpCnsKICByZWdpc3RlciBjaGFyICpfX3Jl dHZhbCA9ICpfX3M7CiAgaWYgKF9fcmV0dmFsICE9ICgodm9pZCAqKTApKQogICAgewogICAgICBy ZWdpc3RlciBjaGFyICpfX2NwID0gX19yZXR2YWw7CiAgICAgIHdoaWxlICgxKQogICAgICAgIHsK ICAgICAgICAgIGlmICgqX19jcCA9PSAnXDAnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg X19jcCA9ICgodm9pZCAqKTApOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAg ICAgIGlmICgqX19jcCA9PSBfX3JlamVjdDEgfHwgKl9fY3AgPT0gX19yZWplY3QyIHx8ICpfX2Nw ID09IF9fcmVqZWN0MykKICAgICAgICAgICAgewogICAgICAgICAgICAgICpfX2NwKysgPSAnXDAn OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICArK19fY3A7CiAg ICAgICAgfQogICAgICAqX19zID0gX19jcDsKICAgIH0KICByZXR1cm4gX19yZXR2YWw7Cn0KIyAx MTg1ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvc3Rk bGliLmgiIDEgMwojIDMzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKIyAxICIvdXNyL2xvY2Fs L2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVm LmgiIDEgMwojIDM0ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMwoKCiMgNTI3ICIvdXNyL2lu Y2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19h dHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKCmV4dGVybiB2b2lkICpjYWxsb2MgKHNpemVfdCBf X25tZW1iLCBzaXplX3QgX19zaXplKQogICAgIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7 CiMgODY0ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKCiMgMTE4NiAiL3Vzci9pbmNsdWRlL2Jp dHMvc3RyaW5nMi5oIiAyIDMKCgoKCmV4dGVybiBjaGFyICpfX3N0cmR1cCAoX19jb25zdCBjaGFy ICpfX3N0cmluZykgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKIyAxMjA5ICIvdXNyL2lu Y2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKZXh0ZXJuIGNoYXIgKl9fc3RybmR1cCAoX19jb25zdCBj aGFyICpfX3N0cmluZywgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2Nf XykpOwojIDM2MSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMKCgoKCiMgMTYgInNyYy9tYW1l LmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDEgMwojIDMzICIvdXNyL2luY2x1ZGUv c3RkbGliLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1s aW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDM0ICIvdXNyL2luY2x1ZGUvc3Rk bGliLmgiIDIgMwoKCiMgOTQgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwp0eXBlZGVmIHN0cnVj dAogIHsKICAgIGludCBxdW90OwogICAgaW50IHJlbTsKICB9IGRpdl90OwoKCgp0eXBlZGVmIHN0 cnVjdAogIHsKICAgIGxvbmcgaW50IHF1b3Q7CiAgICBsb25nIGludCByZW07CiAgfSBsZGl2X3Q7 CiMgMTMzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIHNpemVfdCBfX2N0eXBlX2dl dF9tYl9jdXJfbWF4ICh2b2lkKSA7CgoKCmV4dGVybiBkb3VibGUgYXRvZiAoX19jb25zdCBjaGFy ICpfX25wdHIpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIGludCBhdG9pIChf X2NvbnN0IGNoYXIgKl9fbnB0cikgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgpleHRlcm4g bG9uZyBpbnQgYXRvbCAoX19jb25zdCBjaGFyICpfX25wdHIpIF9fYXR0cmlidXRlX18gKChfX3B1 cmVfXykpOwoKCgpfX2V4dGVuc2lvbl9fIGV4dGVybiBsb25nIGxvbmcgaW50IGF0b2xsIChfX2Nv bnN0IGNoYXIgKl9fbnB0cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgoKZXh0 ZXJuIGRvdWJsZSBzdHJ0b2QgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAg ICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikgOwojIDE2MyAiL3Vz ci9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBsb25nIGludCBzdHJ0b2wgKF9fY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jl c3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKSA7CgpleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQg c3RydG91bCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNl KQogICAgIDsKCgoKX19leHRlbnNpb25fXwpleHRlcm4gbG9uZyBsb25nIGludCBzdHJ0b3EgKF9f Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpIDsKCl9fZXh0ZW5zaW9u X18KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgc3RydG91cSAoX19jb25zdCBjaGFyICpf X3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCiAgICAgOwoKCgoKCgpfX2V4 dGVuc2lvbl9fCmV4dGVybiBsb25nIGxvbmcgaW50IHN0cnRvbGwgKF9fY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jl c3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKSA7CgpfX2V4dGVuc2lvbl9fCmV4dGVybiB1bnNp Z25lZCBsb25nIGxvbmcgaW50IHN0cnRvdWxsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19u cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVz dHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCiAgICAgOwojIDI1MCAiL3Vzci9pbmNsdWRlL3N0 ZGxpYi5oIiAzCmV4dGVybiBkb3VibGUgX19zdHJ0b2RfaW50ZXJuYWwgKF9fY29uc3QgY2hhciAq X19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg KipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19ncm91cCkKICAgICA7CmV4dGVybiBmbG9hdCBf X3N0cnRvZl9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50 IF9fZ3JvdXApCiAgICAgOwpleHRlcm4gbG9uZyBkb3VibGUgX19zdHJ0b2xkX2ludGVybmFsIChf X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fZ3JvdXApIDsKCmV4dGVybiBsb25nIGludCBf X3N0cnRvbF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iYXNlLCBpbnQgX19ncm91 cCkgOwoKCgpleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQgX19zdHJ0b3VsX2ludGVybmFsIChfX2Nv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXAp IDsKCgoKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIGxvbmcgbG9uZyBpbnQgX19zdHJ0b2xsX2ludGVy bmFsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2Jhc2UsIGludCBfX2dyb3Vw KSA7CgoKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19zdHJ0 b3VsbF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICoKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9f ZW5kcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgX19iYXNlLCBpbnQgX19ncm91cCkKICAgICA7CgoKCgoKCgpleHRlcm4gX19pbmxpbmUg ZG91YmxlCnN0cnRvZCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwgY2hhciAqKl9f cmVzdHJpY3QgX19lbmRwdHIpCnsKICByZXR1cm4gX19zdHJ0b2RfaW50ZXJuYWwgKF9fbnB0ciwg X19lbmRwdHIsIDApOwp9CmV4dGVybiBfX2lubGluZSBsb25nIGludApzdHJ0b2wgKF9fY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAg ICAgIGludCBfX2Jhc2UpCnsKICByZXR1cm4gX19zdHJ0b2xfaW50ZXJuYWwgKF9fbnB0ciwgX19l bmRwdHIsIF9fYmFzZSwgMCk7Cn0KZXh0ZXJuIF9faW5saW5lIHVuc2lnbmVkIGxvbmcgaW50CnN0 cnRvdWwgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0 IF9fZW5kcHRyLAogICAgICAgICBpbnQgX19iYXNlKQp7CiAgcmV0dXJuIF9fc3RydG91bF9pbnRl cm5hbCAoX19ucHRyLCBfX2VuZHB0ciwgX19iYXNlLCAwKTsKfQojIDMyNSAiL3Vzci9pbmNsdWRl L3N0ZGxpYi5oIiAzCl9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBpbnQK c3RydG9xIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmlj dCBfX2VuZHB0ciwKICAgICAgICBpbnQgX19iYXNlKQp7CiAgcmV0dXJuIF9fc3RydG9sbF9pbnRl cm5hbCAoX19ucHRyLCBfX2VuZHB0ciwgX19iYXNlLCAwKTsKfQpfX2V4dGVuc2lvbl9fIGV4dGVy biBfX2lubGluZSB1bnNpZ25lZCBsb25nIGxvbmcgaW50CnN0cnRvdXEgKF9fY29uc3QgY2hhciAq X19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICBp bnQgX19iYXNlKQp7CiAgcmV0dXJuIF9fc3RydG91bGxfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRw dHIsIF9fYmFzZSwgMCk7Cn0KCgoKX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgbG9uZyBs b25nIGludApzdHJ0b2xsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoq X19yZXN0cmljdCBfX2VuZHB0ciwKICAgICAgICAgaW50IF9fYmFzZSkKewogIHJldHVybiBfX3N0 cnRvbGxfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIsIF9fYmFzZSwgMCk7Cn0KX19leHRlbnNp b25fXyBleHRlcm4gX19pbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIGludApzdHJ0b3VsbCAoX19j b25zdCBjaGFyICogX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRy LAogICAgICAgICAgaW50IF9fYmFzZSkKewogIHJldHVybiBfX3N0cnRvdWxsX2ludGVybmFsIChf X25wdHIsIF9fZW5kcHRyLCBfX2Jhc2UsIDApOwp9CgoKZXh0ZXJuIF9faW5saW5lIGRvdWJsZQph dG9mIChfX2NvbnN0IGNoYXIgKl9fbnB0cikKewogIHJldHVybiBzdHJ0b2QgKF9fbnB0ciwgKGNo YXIgKiopICgodm9pZCAqKTApKTsKfQpleHRlcm4gX19pbmxpbmUgaW50CmF0b2kgKF9fY29uc3Qg Y2hhciAqX19ucHRyKQp7CiAgcmV0dXJuIChpbnQpIHN0cnRvbCAoX19ucHRyLCAoY2hhciAqKikg KCh2b2lkICopMCksIDEwKTsKfQpleHRlcm4gX19pbmxpbmUgbG9uZyBpbnQKYXRvbCAoX19jb25z dCBjaGFyICpfX25wdHIpCnsKICByZXR1cm4gc3RydG9sIChfX25wdHIsIChjaGFyICoqKSAoKHZv aWQgKikwKSwgMTApOwp9CgoKX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgbG9uZyBsb25n IGludAphdG9sbCAoX19jb25zdCBjaGFyICpfX25wdHIpCnsKICByZXR1cm4gc3RydG9sbCAoX19u cHRyLCAoY2hhciAqKikgKCh2b2lkICopMCksIDEwKTsKfQojIDM4NCAiL3Vzci9pbmNsdWRlL3N0 ZGxpYi5oIiAzCmV4dGVybiBjaGFyICpsNjRhIChsb25nIGludCBfX24pIDsKCgpleHRlcm4gbG9u ZyBpbnQgYTY0bCAoX19jb25zdCBjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp OwoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMKIyAyOCAiL3Vzci9pbmNsdWRl L3N5cy90eXBlcy5oIiAzCgoKCgoKCnR5cGVkZWYgX191X2NoYXIgdV9jaGFyOwp0eXBlZGVmIF9f dV9zaG9ydCB1X3Nob3J0Owp0eXBlZGVmIF9fdV9pbnQgdV9pbnQ7CnR5cGVkZWYgX191X2xvbmcg dV9sb25nOwp0eXBlZGVmIF9fcXVhZF90IHF1YWRfdDsKdHlwZWRlZiBfX3VfcXVhZF90IHVfcXVh ZF90Owp0eXBlZGVmIF9fZnNpZF90IGZzaWRfdDsKCgoKCnR5cGVkZWYgX19sb2ZmX3QgbG9mZl90 OwoKCgp0eXBlZGVmIF9faW5vX3QgaW5vX3Q7CiMgNjEgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMu aCIgMwp0eXBlZGVmIF9fZGV2X3QgZGV2X3Q7CgoKCgp0eXBlZGVmIF9fZ2lkX3QgZ2lkX3Q7CgoK Cgp0eXBlZGVmIF9fbW9kZV90IG1vZGVfdDsKCgoKCnR5cGVkZWYgX19ubGlua190IG5saW5rX3Q7 CgoKCgp0eXBlZGVmIF9fdWlkX3QgdWlkX3Q7CgoKCgoKdHlwZWRlZiBfX29mZl90IG9mZl90Owoj IDk5ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiBfX3BpZF90IHBpZF90OwoK CgoKdHlwZWRlZiBfX2lkX3QgaWRfdDsKCgoKCnR5cGVkZWYgX19zc2l6ZV90IHNzaXplX3Q7CgoK CgoKdHlwZWRlZiBfX2RhZGRyX3QgZGFkZHJfdDsKdHlwZWRlZiBfX2NhZGRyX3QgY2FkZHJfdDsK CgoKCgp0eXBlZGVmIF9fa2V5X3Qga2V5X3Q7CiMgMTQ2ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVz LmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1n bnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDE0NyAiL3Vzci9pbmNsdWRlL3N5cy90eXBl cy5oIiAyIDMKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1bG9uZzsKdHlwZWRlZiB1bnNp Z25lZCBzaG9ydCBpbnQgdXNob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwojIDE5MCAi L3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgaW50IGludDhfdCBfX2F0dHJpYnV0 ZV9fICgoX19tb2RlX18gKF9fUUlfXykpKTsKdHlwZWRlZiBpbnQgaW50MTZfdCBfX2F0dHJpYnV0 ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiBpbnQgaW50MzJfdCBfX2F0dHJpYnV0 ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKdHlwZWRlZiBpbnQgaW50NjRfdCBfX2F0dHJpYnV0 ZV9fICgoX19tb2RlX18gKF9fRElfXykpKTsKCgp0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDhf dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fUUlfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBp bnQgdV9pbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwp0eXBlZGVm IHVuc2lnbmVkIGludCB1X2ludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18p KSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2Rl X18gKF9fRElfXykpKTsKCnR5cGVkZWYgaW50IHJlZ2lzdGVyX3QgX19hdHRyaWJ1dGVfXyAoKF9f bW9kZV9fIChfX3dvcmRfXykpKTsKIyAyMTUgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwoj IDEgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDEgMwojIDMxICIvdXNyL2luY2x1ZGUvc3lz L3NlbGVjdC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc2VsZWN0LmgiIDEgMwojIDMyICIv dXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3Np Z3NldC5oIiAxIDMKIyAyMyAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnc2V0LmgiIDMKdHlwZWRlZiBp bnQgX19zaWdfYXRvbWljX3Q7CgoKCgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIHVuc2lnbmVkIGxv bmcgaW50IF9fdmFsWygxMDI0IC8gKDggKiBzaXplb2YgKHVuc2lnbmVkIGxvbmcgaW50KSkpXTsK ICB9IF9fc2lnc2V0X3Q7CiMgMzUgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDIgMwoKCgp0 eXBlZGVmIF9fc2lnc2V0X3Qgc2lnc2V0X3Q7CgoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRz L3RpbWUuaCIgMSAzCiMgNjcgIi91c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIgMwpzdHJ1Y3QgdGlt ZXZhbAogIHsKICAgIF9fdGltZV90IHR2X3NlYzsKICAgIF9fc3VzZWNvbmRzX3QgdHZfdXNlYzsK ICB9OwojIDQ3ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMKCgp0eXBlZGVmIF9fc3Vz ZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoKCgoKdHlwZWRlZiBsb25nIGludCBfX2ZkX21hc2s7CgoK CgoKCgp0eXBlZGVmIHN0cnVjdAogIHsKCgoKCgoKICAgIF9fZmRfbWFzayBfX2Zkc19iaXRzWzEw MjQgLyAoOCAqIHNpemVvZiAoX19mZF9tYXNrKSldOwoKCiAgfSBmZF9zZXQ7CgoKCgoKCnR5cGVk ZWYgX19mZF9tYXNrIGZkX21hc2s7CiMgOTUgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMK CgoKCgoKCmV4dGVybiBpbnQgc2VsZWN0IChpbnQgX19uZmRzLCBmZF9zZXQgKl9fcmVzdHJpY3Qg X19yZWFkZmRzLAogICAgICAgICAgICAgICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fd3JpdGVm ZHMsCiAgICAgICAgICAgICAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX19leGNlcHRmZHMsCiAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZhbCAqX19yZXN0cmljdCBfX3RpbWVvdXQpIDsK IyAxMTggIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMKCiMgMjE2ICIvdXNyL2luY2x1ZGUv c3lzL3R5cGVzLmgiIDIgMwoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zeXNtYWNyb3MuaCIgMSAz CiMgMjE5ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwojIDIzMCAiL3Vzci9pbmNsdWRl L3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgX19ibGtjbnRfdCBibGtjbnRfdDsKCgoKdHlwZWRlZiBf X2ZzYmxrY250X3QgZnNibGtjbnRfdDsKCgoKdHlwZWRlZiBfX2ZzZmlsY250X3QgZnNmaWxjbnRf dDsKIyAyNjIgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwoKIyAzOTEgIi91c3IvaW5jbHVk ZS9zdGRsaWIuaCIgMiAzCgoKCgoKCmV4dGVybiBsb25nIGludCByYW5kb20gKHZvaWQpIDsKCgpl eHRlcm4gdm9pZCBzcmFuZG9tICh1bnNpZ25lZCBpbnQgX19zZWVkKSA7CgoKCgoKZXh0ZXJuIGNo YXIgKmluaXRzdGF0ZSAodW5zaWduZWQgaW50IF9fc2VlZCwgY2hhciAqX19zdGF0ZWJ1ZiwKICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc3RhdGVsZW4pIDsKCgoKZXh0ZXJuIGNoYXIg KnNldHN0YXRlIChjaGFyICpfX3N0YXRlYnVmKSA7CgoKCgoKCgpzdHJ1Y3QgcmFuZG9tX2RhdGEK ICB7CiAgICBpbnQzMl90ICpmcHRyOwogICAgaW50MzJfdCAqcnB0cjsKICAgIGludDMyX3QgKnN0 YXRlOwogICAgaW50IHJhbmRfdHlwZTsKICAgIGludCByYW5kX2RlZzsKICAgIGludCByYW5kX3Nl cDsKICAgIGludDMyX3QgKmVuZF9wdHI7CiAgfTsKCmV4dGVybiBpbnQgcmFuZG9tX3IgKHN0cnVj dCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZiwKICAgICAgICAgICAgICAgICAgICAgaW50 MzJfdCAqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKZXh0ZXJuIGludCBzcmFuZG9tX3IgKHVuc2ln bmVkIGludCBfX3NlZWQsIHN0cnVjdCByYW5kb21fZGF0YSAqX19idWYpIDsKCmV4dGVybiBpbnQg aW5pdHN0YXRlX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIgKl9fcmVzdHJpY3QgX19zdGF0 ZWJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc3RhdGVsZW4sCiAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZikgOwoK ZXh0ZXJuIGludCBzZXRzdGF0ZV9yIChjaGFyICpfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCiAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHJhbmRvbV9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmKSA7 CgoKCgoKZXh0ZXJuIGludCByYW5kICh2b2lkKSA7CgpleHRlcm4gdm9pZCBzcmFuZCAodW5zaWdu ZWQgaW50IF9fc2VlZCkgOwoKCgpleHRlcm4gaW50IHJhbmRfciAodW5zaWduZWQgaW50ICpfX3Nl ZWQpIDsKCgoKCgoKCmV4dGVybiBkb3VibGUgZHJhbmQ0OCAodm9pZCkgOwpleHRlcm4gZG91Ymxl IGVyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKSA7CgoKZXh0ZXJuIGxvbmcg aW50IGxyYW5kNDggKHZvaWQpIDsKZXh0ZXJuIGxvbmcgaW50IG5yYW5kNDggKHVuc2lnbmVkIHNo b3J0IGludCBfX3hzdWJpWzNdKSA7CgoKZXh0ZXJuIGxvbmcgaW50IG1yYW5kNDggKHZvaWQpIDsK ZXh0ZXJuIGxvbmcgaW50IGpyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKSA7 CgoKZXh0ZXJuIHZvaWQgc3JhbmQ0OCAobG9uZyBpbnQgX19zZWVkdmFsKSA7CmV4dGVybiB1bnNp Z25lZCBzaG9ydCBpbnQgKnNlZWQ0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSkg OwpleHRlcm4gdm9pZCBsY29uZzQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3XSkgOwoK CgoKCnN0cnVjdCBkcmFuZDQ4X2RhdGEKICB7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX194WzNd OwogICAgdW5zaWduZWQgc2hvcnQgaW50IF9fb2xkX3hbM107CiAgICB1bnNpZ25lZCBzaG9ydCBp bnQgX19jOwogICAgdW5zaWduZWQgc2hvcnQgaW50IF9faW5pdDsKICAgIHVuc2lnbmVkIGxvbmcg bG9uZyBpbnQgX19hOwogIH07CgoKZXh0ZXJuIGludCBkcmFuZDQ4X3IgKHN0cnVjdCBkcmFuZDQ4 X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICBkb3VibGUg Kl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKZXh0ZXJuIGludCBlcmFuZDQ4X3IgKHVuc2lnbmVkIHNo b3J0IGludCBfX3hzdWJpWzNdLAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRyYW5kNDhf ZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSAq X19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKCmV4dGVybiBpbnQgbHJhbmQ0OF9yIChzdHJ1Y3QgZHJh bmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgbG9u ZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKZXh0ZXJuIGludCBucmFuZDQ4X3IgKHVuc2ln bmVkIHNob3J0IGludCBfX3hzdWJpWzNdLAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy YW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgIGxv bmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSA7CgoKZXh0ZXJuIGludCBtcmFuZDQ4X3IgKHN0 cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCiAgICAgICAgICAgICAgICAg ICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwpleHRlcm4gaW50IGpyYW5kNDhf ciAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCiAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgICAgICAgICAg ICAgICAgbG9uZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKCgpleHRlcm4gaW50IHNyYW5k NDhfciAobG9uZyBpbnQgX19zZWVkdmFsLCBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZlcikK ICAgICA7CgpleHRlcm4gaW50IHNlZWQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2 WzNdLAogICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZlcikg OwoKZXh0ZXJuIGludCBsY29uZzQ4X3IgKHVuc2lnbmVkIHNob3J0IGludCBfX3BhcmFtWzddLAog ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpIDsKIyA1 MzYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gdm9pZCAqcmVhbGxvYyAodm9pZCAq X19wdHIsIHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7CgpleHRl cm4gdm9pZCBmcmVlICh2b2lkICpfX3B0cikgOwoKCgpleHRlcm4gdm9pZCBjZnJlZSAodm9pZCAq X19wdHIpIDsKCgoKIyAxICIvdXNyL2luY2x1ZGUvYWxsb2NhLmgiIDEgMwojIDI1ICIvdXNyL2lu Y2x1ZGUvYWxsb2NhLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy0zLjEvbGliL2djYy1saWIvaTY4 Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDI2ICIvdXNyL2luY2x1 ZGUvYWxsb2NhLmgiIDIgMwoKCgoKCgoKZXh0ZXJuIHZvaWQgKmFsbG9jYSAoc2l6ZV90IF9fc2l6 ZSkgOwoKCgoKCgojIDU0NyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAyIDMKCgoKCmV4dGVybiB2 b2lkICp2YWxsb2MgKHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7 CiMgNTYxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQp IF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgoKZXh0ZXJuIGludCBhdGV4aXQgKHZv aWQgKCpfX2Z1bmMpICh2b2lkKSkgOwoKCgoKZXh0ZXJuIGludCBvbl9leGl0ICh2b2lkICgqX19m dW5jKSAoaW50IF9fc3RhdHVzLCB2b2lkICpfX2FyZyksIHZvaWQgKl9fYXJnKQogICAgIDsKCgoK CgpleHRlcm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vcmV0 dXJuX18pKTsKIyA1ODcgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gY2hhciAqZ2V0 ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgpleHRlcm4gY2hhciAqX19zZWN1cmVfZ2V0 ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgoKCmV4dGVybiBpbnQgcHV0ZW52IChjaGFy ICpfX3N0cmluZykgOwoKCgoKCmV4dGVybiBpbnQgc2V0ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFt ZSwgX19jb25zdCBjaGFyICpfX3ZhbHVlLCBpbnQgX19yZXBsYWNlKQogICAgIDsKCgpleHRlcm4g aW50IHVuc2V0ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgoKCgpleHRlcm4gaW50IGNs ZWFyZW52ICh2b2lkKSA7CiMgNjIzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGNo YXIgKm1rdGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgOwoKCgoKCgoKZXh0ZXJuIGludCBta3N0ZW1w IChjaGFyICpfX3RlbXBsYXRlKSA7CiMgNjUwICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0 ZXJuIGNoYXIgKm1rZHRlbXAgKGNoYXIgKl9fdGVtcGxhdGUpIDsKCgoKCmV4dGVybiBpbnQgc3lz dGVtIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCkgOwojIDY3MiAiL3Vzci9pbmNsdWRlL3N0ZGxp Yi5oIiAzCmV4dGVybiBjaGFyICpyZWFscGF0aCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fcmVzb2x2ZWQp IDsKCgoKCgoKdHlwZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoX19jb25zdCB2b2lkICosIF9f Y29uc3Qgdm9pZCAqKTsKIyA2ODkgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gdm9p ZCAqYnNlYXJjaCAoX19jb25zdCB2b2lkICpfX2tleSwgX19jb25zdCB2b2lkICpfX2Jhc2UsCiAg ICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSwgX19jb21w YXJfZm5fdCBfX2NvbXBhcik7CgoKCmV4dGVybiB2b2lkIHFzb3J0ICh2b2lkICpfX2Jhc2UsIHNp emVfdCBfX25tZW1iLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgX19jb21wYXJf Zm5fdCBfX2NvbXBhcik7CgoKCmV4dGVybiBpbnQgYWJzIChpbnQgX194KSBfX2F0dHJpYnV0ZV9f ICgoX19jb25zdF9fKSk7CmV4dGVybiBsb25nIGludCBsYWJzIChsb25nIGludCBfX3gpIF9fYXR0 cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyA3MTAgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpl eHRlcm4gZGl2X3QgZGl2IChpbnQgX19udW1lciwgaW50IF9fZGVub20pCiAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fY29uc3RfXykpOwpleHRlcm4gbGRpdl90IGxkaXYgKGxvbmcgaW50IF9fbnVtZXIs IGxvbmcgaW50IF9fZGVub20pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwojIDcy OCAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBjaGFyICplY3Z0IChkb3VibGUgX192 YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwKICAgICAgICAgICAg ICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24pIDsKCgoKCmV4dGVybiBjaGFyICpmY3Z0IChk b3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwKICAg ICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24pIDsKCgoKCmV4dGVybiBjaGFy ICpnY3Z0IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBjaGFyICpfX2J1ZikgOwoKCgoK ZXh0ZXJuIGNoYXIgKnFlY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCiAg ICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAqX19yZXN0cmlj dCBfX3NpZ24pIDsKZXh0ZXJuIGNoYXIgKnFmY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQg X19uZGlnaXQsCiAgICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGlu dCAqX19yZXN0cmljdCBfX3NpZ24pIDsKZXh0ZXJuIGNoYXIgKnFnY3Z0IChsb25nIGRvdWJsZSBf X3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9fYnVmKSA7CgoKCgpleHRlcm4gaW50IGVjdnRf ciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQs CiAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduLCBjaGFyICpfX3Jlc3Ry aWN0IF9fYnVmLAogICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbGVuKSA7CmV4dGVybiBpbnQg ZmN2dF9yIChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19k ZWNwdCwKICAgICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24sIGNoYXIgKl9f cmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAgICAgICBzaXplX3QgX19sZW4pIDsKCmV4dGVy biBpbnQgcWVjdnRfciAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LAogICAgICAg ICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19z aWduLAogICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBf X2xlbikgOwpleHRlcm4gaW50IHFmY3Z0X3IgKGxvbmcgZG91YmxlIF9fdmFsdWUsIGludCBfX25k aWdpdCwKICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwgaW50ICpf X3Jlc3RyaWN0IF9fc2lnbiwKICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9f YnVmLCBzaXplX3QgX19sZW4pIDsKCgoKCgoKZXh0ZXJuIGludCBtYmxlbiAoX19jb25zdCBjaGFy ICpfX3MsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gaW50IG1idG93YyAod2NoYXJfdCAqX19yZXN0 cmljdCBfX3B3YywKICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X3MsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gaW50IHdjdG9tYiAoY2hhciAqX19zLCB3Y2hhcl90 IF9fd2NoYXIpIDsKCgoKZXh0ZXJuIHNpemVfdCBtYnN0b3djcyAod2NoYXJfdCAqX19yZXN0cmlj dCBfX3B3Y3MsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX3MsIHNpemVfdCBfX24pIDsKCmV4dGVybiBzaXplX3Qgd2NzdG9tYnMgKGNoYXIgKl9fcmVz dHJpY3QgX19zLAogICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHdjaGFyX3QgKl9fcmVz dHJpY3QgX19wd2NzLCBzaXplX3QgX19uKQogICAgIDsKCgoKCgoKCmV4dGVybiBpbnQgcnBtYXRj aCAoX19jb25zdCBjaGFyICpfX3Jlc3BvbnNlKSA7CiMgODU4ICIvdXNyL2luY2x1ZGUvc3RkbGli LmgiIDMKZXh0ZXJuIGludCBnZXRsb2FkYXZnIChkb3VibGUgX19sb2FkYXZnW10sIGludCBfX25l bGVtKSA7CgoKCgoKCiMgMTcgInNyYy9tYW1lLmgiIDIKCgoKCgoKZXh0ZXJuIGNoYXIgYnVpbGRf dmVyc2lvbltdOwojIDM2ICJzcmMvbWFtZS5oIgpzdHJ1Y3QgUmVnaW9uSW5mbwp7CiAgICAgICAg VUlOVDggKiBiYXNlOwogICAgICAgIHNpemVfdCBsZW5ndGg7CiAgICAgICAgVUlOVDMyIHR5cGU7 CiAgICAgICAgVUlOVDMyIGZsYWdzOwp9OwoKc3RydWN0IFJ1bm5pbmdNYWNoaW5lCnsKICAgICAg ICBzdHJ1Y3QgUmVnaW9uSW5mbyBtZW1vcnlfcmVnaW9uWzMyXTsKICAgICAgICBzdHJ1Y3QgR2Z4 RWxlbWVudCAqZ2Z4WzMyXTsKICAgICAgICBzdHJ1Y3QgbWFtZV9iaXRtYXAgKnNjcmJpdG1hcDsK ICAgICAgICBzdHJ1Y3QgcmVjdGFuZ2xlIHZpc2libGVfYXJlYTsKICAgICAgICBwZW5fdCAqcGVu czsKCgoKCiAgICAgICAgcmdiX3QgKnBhbGV0dGU7CiAgICAgICAgVUlOVDE2ICpnYW1lX2NvbG9y dGFibGU7CgogICAgICAgIHBlbl90ICpyZW1hcHBlZF9jb2xvcnRhYmxlOwoKICAgICAgICBjb25z dCBzdHJ1Y3QgR2FtZURyaXZlciAqZ2FtZWRydjsKICAgICAgICBjb25zdCBzdHJ1Y3QgSW50ZXJu YWxNYWNoaW5lRHJpdmVyICpkcnY7CiAgICAgICAgaW50IGNvbG9yX2RlcHRoOwogICAgICAgIGlu dCBzYW1wbGVfcmF0ZTsKCgoKICAgICAgICBzdHJ1Y3QgR2FtZVNhbXBsZXMgKnNhbXBsZXM7CiAg ICAgICAgc3RydWN0IElucHV0UG9ydCAqaW5wdXRfcG9ydHM7CgoKICAgICAgICBzdHJ1Y3QgSW5w dXRQb3J0ICppbnB1dF9wb3J0c19kZWZhdWx0OwogICAgICAgIGludCBvcmllbnRhdGlvbjsKICAg ICAgICBzdHJ1Y3QgR2Z4RWxlbWVudCAqdWlmb250OwogICAgICAgIGludCB1aWZvbnR3aWR0aCx1 aWZvbnRoZWlnaHQ7CiAgICAgICAgaW50IHVpeG1pbix1aXltaW47CiAgICAgICAgaW50IHVpd2lk dGgsdWloZWlnaHQ7CiAgICAgICAgaW50IHVpX29yaWVudGF0aW9uOwogICAgICAgIHN0cnVjdCBy ZWN0YW5nbGUgYWJzb2x1dGVfdmlzaWJsZV9hcmVhOwoKCiAgICAgICAgc3RydWN0IG1hbWVfYml0 bWFwICpkZWJ1Z19iaXRtYXA7CiAgICAgICAgcGVuX3QgKmRlYnVnX3BlbnM7CiAgICAgICAgcGVu X3QgKmRlYnVnX3JlbWFwcGVkX2NvbG9ydGFibGU7CiAgICAgICAgc3RydWN0IEdmeEVsZW1lbnQg KmRlYnVnZ2VyX2ZvbnQ7Cn07CiMgMTEwICJzcmMvbWFtZS5oIgpzdHJ1Y3QgR2FtZU9wdGlvbnMK ewogICAgICAgIHZvaWQgKnJlY29yZDsKICAgICAgICB2b2lkICpwbGF5YmFjazsKICAgICAgICB2 b2lkICpsYW5ndWFnZV9maWxlOwoKICAgICAgICBpbnQgbWFtZV9kZWJ1ZzsKICAgICAgICBpbnQg Y2hlYXQ7CiAgICAgICAgaW50IGd1aV9ob3N0OwoKICAgICAgICBpbnQgc2FtcGxlcmF0ZTsKICAg ICAgICBpbnQgdXNlX3NhbXBsZXM7CiAgICAgICAgaW50IHVzZV9maWx0ZXI7CgogICAgICAgIGlu dCBjb2xvcl9kZXB0aDsKICAgICAgICBpbnQgdmVjdG9yX3dpZHRoOwogICAgICAgIGludCB2ZWN0 b3JfaGVpZ2h0OwogICAgICAgIGludCBkZWJ1Z193aWR0aDsKICAgICAgICBpbnQgZGVidWdfaGVp Z2h0OwogICAgICAgIGludCBub3JvdGF0ZTsKICAgICAgICBpbnQgcm9yOwogICAgICAgIGludCBy b2w7CiAgICAgICAgaW50IGZsaXB4OwogICAgICAgIGludCBmbGlweTsKICAgICAgICBpbnQgYmVh bTsKICAgICAgICBmbG9hdCB2ZWN0b3JfZmxpY2tlcjsKICAgICAgICBpbnQgdHJhbnNsdWNlbmN5 OwogICAgICAgIGludCBhbnRpYWxpYXM7CiAgICAgICAgaW50IHVzZV9hcnR3b3JrOwogICAgICAg IGNoYXIgc2F2ZWdhbWU7CgoKCgoKCgp9OwojIDE1NyAic3JjL21hbWUuaCIKZXh0ZXJuIHN0cnVj dCBHYW1lT3B0aW9ucyBvcHRpb25zOwpleHRlcm4gc3RydWN0IFJ1bm5pbmdNYWNoaW5lICpNYWNo aW5lOwpleHRlcm4gaW50IHBhcnRpYWxfdXBkYXRlX2NvdW50OwojIDE2OSAic3JjL21hbWUuaCIK aW50IHJ1bl9nYW1lKGludCBnYW1lKTsKaW50IHVwZGF0ZXNjcmVlbih2b2lkKTsKdm9pZCBkcmF3 X3NjcmVlbih2b2lkKTsKCgoKdm9pZCBmb3JjZV9wYXJ0aWFsX3VwZGF0ZShpbnQgc2NhbmxpbmUp OwoKCnZvaWQgcmVzZXRfcGFydGlhbF91cGRhdGVzKHZvaWQpOwoKCgp2b2lkIHNjaGVkdWxlX2Z1 bGxfcmVmcmVzaCh2b2lkKTsKCnZvaWQgdXBkYXRlX3ZpZGVvX2FuZF9hdWRpbyh2b2lkKTsKCmlu dCBtYW1lX2hpZ2hzY29yZV9lbmFibGVkKHZvaWQpOwp2b2lkIHNldF9sZWRfc3RhdHVzKGludCBu dW0saW50IG9uKTsKCgpzdHJ1Y3QgSW50ZXJuYWxNYWNoaW5lRHJpdmVyOwp2b2lkIGV4cGFuZF9t YWNoaW5lX2RyaXZlcih2b2lkICgqY29uc3RydWN0b3IpKHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVE cml2ZXIgKiksIHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVEcml2ZXIgKm91dHB1dCk7CiMgNTggInNy Yy9kcml2ZXIuaCIgMgojIDEgInNyYy9jb21tb24uaCIgMQojIDI0ICJzcmMvY29tbW9uLmgiCnN0 cnVjdCBtYW1lX2JpdG1hcAp7CiAgICAgICAgaW50IHdpZHRoLGhlaWdodDsKICAgICAgICBpbnQg ZGVwdGg7CiAgICAgICAgdm9pZCAqKmxpbmU7CgoKICAgICAgICB2b2lkICpiYXNlOwogICAgICAg IGludCByb3dwaXhlbHM7CiAgICAgICAgaW50IHJvd2J5dGVzOwoKCiAgICAgICAgdm9pZCAoKnBs b3QpKHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwLGludCB4LGludCB5LHBlbl90IHBlbik7CiAg ICAgICAgcGVuX3QgKCpyZWFkKShzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCxpbnQgeCxpbnQg eSk7CiAgICAgICAgdm9pZCAoKnBsb3RfYm94KShzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCxp bnQgeCxpbnQgeSxpbnQgd2lkdGgsaW50IGhlaWdodCxwZW5fdCBwZW4pOwp9OwoKCnN0cnVjdCBS b21Nb2R1bGUKewogICAgICAgIGNvbnN0IGNoYXIgKl9uYW1lOwogICAgICAgIFVJTlQzMiBfb2Zm c2V0OwogICAgICAgIFVJTlQzMiBfbGVuZ3RoOwogICAgICAgIFVJTlQzMiBfZmxhZ3M7CiAgICAg ICAgVUlOVDMyIF9jcmM7Cn07CgoKc3RydWN0IEdhbWVTYW1wbGUKewogICAgICAgIGludCBsZW5n dGg7CiAgICAgICAgaW50IHNtcGZyZXE7CiAgICAgICAgaW50IHJlc29sdXRpb247CiAgICAgICAg c2lnbmVkIGNoYXIgZGF0YVsxXTsKfTsKCgpzdHJ1Y3QgR2FtZVNhbXBsZXMKewogICAgICAgIGlu dCB0b3RhbDsKICAgICAgICBzdHJ1Y3QgR2FtZVNhbXBsZSAqc2FtcGxlWzFdOwp9OwojIDc1ICJz cmMvY29tbW9uLmgiCmVudW0KewogICAgICAgIFJFR0lPTl9JTlZBTElEID0gMHg4MCwKICAgICAg ICBSRUdJT05fQ1BVMSwKICAgICAgICBSRUdJT05fQ1BVMiwKICAgICAgICBSRUdJT05fQ1BVMywK ICAgICAgICBSRUdJT05fQ1BVNCwKICAgICAgICBSRUdJT05fQ1BVNSwKICAgICAgICBSRUdJT05f Q1BVNiwKICAgICAgICBSRUdJT05fQ1BVNywKICAgICAgICBSRUdJT05fQ1BVOCwKICAgICAgICBS RUdJT05fR0ZYMSwKICAgICAgICBSRUdJT05fR0ZYMiwKICAgICAgICBSRUdJT05fR0ZYMywKICAg ICAgICBSRUdJT05fR0ZYNCwKICAgICAgICBSRUdJT05fR0ZYNSwKICAgICAgICBSRUdJT05fR0ZY NiwKICAgICAgICBSRUdJT05fR0ZYNywKICAgICAgICBSRUdJT05fR0ZYOCwKICAgICAgICBSRUdJ T05fUFJPTVMsCiAgICAgICAgUkVHSU9OX1NPVU5EMSwKICAgICAgICBSRUdJT05fU09VTkQyLAog ICAgICAgIFJFR0lPTl9TT1VORDMsCiAgICAgICAgUkVHSU9OX1NPVU5ENCwKICAgICAgICBSRUdJ T05fU09VTkQ1LAogICAgICAgIFJFR0lPTl9TT1VORDYsCiAgICAgICAgUkVHSU9OX1NPVU5ENywK ICAgICAgICBSRUdJT05fU09VTkQ4LAogICAgICAgIFJFR0lPTl9VU0VSMSwKICAgICAgICBSRUdJ T05fVVNFUjIsCiAgICAgICAgUkVHSU9OX1VTRVIzLAogICAgICAgIFJFR0lPTl9VU0VSNCwKICAg ICAgICBSRUdJT05fVVNFUjUsCiAgICAgICAgUkVHSU9OX1VTRVI2LAogICAgICAgIFJFR0lPTl9V U0VSNywKICAgICAgICBSRUdJT05fVVNFUjgsCiAgICAgICAgUkVHSU9OX01BWAp9OwojIDMwNSAi c3JjL2NvbW1vbi5oIgp2b2lkIHNob3dkaXNjbGFpbWVyKHZvaWQpOwoKCgpzdHJ1Y3QgR2FtZVNh bXBsZXMgKnJlYWRzYW1wbGVzKGNvbnN0IGNoYXIgKipzYW1wbGVuYW1lcyxjb25zdCBjaGFyICpu YW1lKTsKCgoKClVJTlQ4ICptZW1vcnlfcmVnaW9uKGludCBudW0pOwpzaXplX3QgbWVtb3J5X3Jl Z2lvbl9sZW5ndGgoaW50IG51bSk7CgoKCmludCBuZXdfbWVtb3J5X3JlZ2lvbihpbnQgbnVtLCBz aXplX3QgbGVuZ3RoLCBVSU5UMzIgZmxhZ3MpOwp2b2lkIGZyZWVfbWVtb3J5X3JlZ2lvbihpbnQg bnVtKTsKCgoKdm9pZCBjb2luX2NvdW50ZXJfdyhpbnQgbnVtLGludCBvbik7CnZvaWQgY29pbl9s b2Nrb3V0X3coaW50IG51bSxpbnQgb24pOwp2b2lkIGNvaW5fbG9ja291dF9nbG9iYWxfdyhpbnQg b24pOwoKCmV4dGVybiBzaXplX3QgZ2VuZXJpY19udnJhbV9zaXplOwpleHRlcm4gZGF0YThfdCAq Z2VuZXJpY19udnJhbTsKZXh0ZXJuIHZvaWQgbnZyYW1faGFuZGxlcl9nZW5lcmljXzBmaWxsKHZv aWQgKmZpbGUsIGludCByZWFkX29yX3dyaXRlKTsKZXh0ZXJuIHZvaWQgbnZyYW1faGFuZGxlcl9n ZW5lcmljXzFmaWxsKHZvaWQgKmZpbGUsIGludCByZWFkX29yX3dyaXRlKTsKCgp2b2lkIHNldF92 aXNpYmxlX2FyZWEoaW50IG1pbl94LGludCBtYXhfeCxpbnQgbWluX3ksaW50IG1heF95KTsKCgpz dHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcF9hbGxvYyhpbnQgd2lkdGgsaW50IGhlaWdodCk7CnN0 cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwX2FsbG9jX2RlcHRoKGludCB3aWR0aCxpbnQgaGVpZ2h0 LGludCBkZXB0aCk7CnZvaWQgYml0bWFwX2ZyZWUoc3RydWN0IG1hbWVfYml0bWFwICpiaXRtYXAp OwoKCnZvaWQgYmVnaW5fcmVzb3VyY2VfdHJhY2tpbmcodm9pZCk7CnZvaWQgZW5kX3Jlc291cmNl X3RyYWNraW5nKHZvaWQpOwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgZ2V0X3Jlc291cmNlX3RhZyh2 b2lkKQp7CiAgICAgICAgZXh0ZXJuIGludCByZXNvdXJjZV90cmFja2luZ190YWc7CiAgICAgICAg cmV0dXJuIHJlc291cmNlX3RyYWNraW5nX3RhZzsKfQoKCnZvaWQgKmF1dG9fbWFsbG9jKHNpemVf dCBzaXplKTsKc3RydWN0IG1hbWVfYml0bWFwICphdXRvX2JpdG1hcF9hbGxvYyhpbnQgd2lkdGgs aW50IGhlaWdodCk7CnN0cnVjdCBtYW1lX2JpdG1hcCAqYXV0b19iaXRtYXBfYWxsb2NfZGVwdGgo aW50IHdpZHRoLGludCBoZWlnaHQsaW50IGRlcHRoKTsKCgp2b2lkIHNhdmVfc2NyZWVuX3NuYXBz aG90X2FzKHZvaWQgKmZwLHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwKTsKdm9pZCBzYXZlX3Nj cmVlbl9zbmFwc2hvdChzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCk7CgoKY29uc3Qgc3RydWN0 IFJvbU1vZHVsZSAqcm9tX2ZpcnN0X3JlZ2lvbihjb25zdCBzdHJ1Y3QgR2FtZURyaXZlciAqZHJ2 KTsKY29uc3Qgc3RydWN0IFJvbU1vZHVsZSAqcm9tX25leHRfcmVnaW9uKGNvbnN0IHN0cnVjdCBS b21Nb2R1bGUgKnJvbXApOwpjb25zdCBzdHJ1Y3QgUm9tTW9kdWxlICpyb21fZmlyc3RfZmlsZShj b25zdCBzdHJ1Y3QgUm9tTW9kdWxlICpyb21wKTsKY29uc3Qgc3RydWN0IFJvbU1vZHVsZSAqcm9t X25leHRfZmlsZShjb25zdCBzdHJ1Y3QgUm9tTW9kdWxlICpyb21wKTsKY29uc3Qgc3RydWN0IFJv bU1vZHVsZSAqcm9tX2ZpcnN0X2NodW5rKGNvbnN0IHN0cnVjdCBSb21Nb2R1bGUgKnJvbXApOwpj b25zdCBzdHJ1Y3QgUm9tTW9kdWxlICpyb21fbmV4dF9jaHVuayhjb25zdCBzdHJ1Y3QgUm9tTW9k dWxlICpyb21wKTsKCmludCByZWFkcm9tcyh2b2lkKTsKdm9pZCBwcmludHJvbWxpc3QoY29uc3Qg c3RydWN0IFJvbU1vZHVsZSAqcm9tcCxjb25zdCBjaGFyICpuYW1lKTsKIyA1OSAic3JjL2RyaXZl ci5oIiAyCgoKIyAxICJzcmMvY3B1aW50cmYuaCIgMQojIDE0ICJzcmMvY3B1aW50cmYuaCIKIyAx ICJzcmMvdGltZXIuaCIgMQojIDE3ICJzcmMvdGltZXIuaCIKZXh0ZXJuIGRvdWJsZSBjeWNsZXNf dG9fc2VjW107CmV4dGVybiBkb3VibGUgc2VjX3RvX2N5Y2xlc1tdOwojIDQxICJzcmMvdGltZXIu aCIKdm9pZCB0aW1lcl9pbml0KHZvaWQpOwp2b2lkIHRpbWVyX2ZyZWUodm9pZCk7CnZvaWQgKnRp bWVyX2FsbG9jKHZvaWQgKCpjYWxsYmFjaykoaW50KSk7CnZvaWQgdGltZXJfYWRqdXN0KHZvaWQg KndoaWNoLCBkb3VibGUgZHVyYXRpb24sIGludCBwYXJhbSwgZG91YmxlIHBlcmlvZCk7CnZvaWQg dGltZXJfcHVsc2UoZG91YmxlIHBlcmlvZCwgaW50IHBhcmFtLCB2b2lkICgqY2FsbGJhY2spKGlu dCkpOwp2b2lkIHRpbWVyX3NldChkb3VibGUgZHVyYXRpb24sIGludCBwYXJhbSwgdm9pZCAoKmNh bGxiYWNrKShpbnQpKTsKdm9pZCB0aW1lcl9yZXNldCh2b2lkICp3aGljaCwgZG91YmxlIGR1cmF0 aW9uKTsKdm9pZCB0aW1lcl9yZW1vdmUodm9pZCAqd2hpY2gpOwppbnQgdGltZXJfZW5hYmxlKHZv aWQgKndoaWNoLCBpbnQgZW5hYmxlKTsKZG91YmxlIHRpbWVyX3RpbWVlbGFwc2VkKHZvaWQgKndo aWNoKTsKZG91YmxlIHRpbWVyX3RpbWVsZWZ0KHZvaWQgKndoaWNoKTsKZG91YmxlIHRpbWVyX2dl dF90aW1lKHZvaWQpOwpkb3VibGUgdGltZXJfc3RhcnR0aW1lKHZvaWQgKndoaWNoKTsKZG91Ymxl IHRpbWVyX2ZpcmV0aW1lKHZvaWQgKndoaWNoKTsKaW50IHRpbWVyX3NjaGVkdWxlX2NwdShpbnQg KmNwdSwgaW50ICpjeWNsZXMpOwp2b2lkIHRpbWVyX3VwZGF0ZV9jcHUoaW50IGNwdSwgaW50IHJh bik7CnZvaWQgdGltZXJfc3VzcGVuZGNwdShpbnQgY3B1LCBpbnQgc3VzcGVuZCwgaW50IHJlYXNv bik7CnZvaWQgdGltZXJfaG9sZGNwdShpbnQgY3B1LCBpbnQgaG9sZCwgaW50IHJlYXNvbik7Cmlu dCB0aW1lcl9pc2NwdXN1c3BlbmRlZChpbnQgY3B1LCBpbnQgcmVhc29uKTsKaW50IHRpbWVyX2lz Y3B1aGVsZChpbnQgY3B1bnVtLCBpbnQgcmVhc29uKTsKdm9pZCB0aW1lcl9zdXNwZW5kY3B1X3Ry aWdnZXIoaW50IGNwdSwgaW50IHRyaWdnZXIpOwp2b2lkIHRpbWVyX2hvbGRjcHVfdHJpZ2dlcihp bnQgY3B1LCBpbnQgdHJpZ2dlcik7CnZvaWQgdGltZXJfdHJpZ2dlcihpbnQgdHJpZ2dlcik7CmRv dWJsZSB0aW1lcl9nZXRfb3ZlcmNsb2NrKGludCBjcHVudW0pOwp2b2lkIHRpbWVyX3NldF9vdmVy Y2xvY2soaW50IGNwdW51bSwgZG91YmxlIG92ZXJjbG9jayk7CiMgMTUgInNyYy9jcHVpbnRyZi5o IiAyCiMgMjggInNyYy9jcHVpbnRyZi5oIgplbnVtCnsKICAgICAgICBDUFVfRFVNTVksCgogICAg ICAgIENQVV9aODAsCgoKICAgICAgICBDUFVfWjE4MCwKCgogICAgICAgIENQVV84MDgwLAoKCiAg ICAgICAgQ1BVXzgwODVBLAoKCiAgICAgICAgQ1BVX002NTAyLAoKCiAgICAgICAgQ1BVX002NUMw MiwKIyA1OSAic3JjL2NwdWludHJmLmgiCiAgICAgICAgQ1BVX002NTEwLAojIDcxICJzcmMvY3B1 aW50cmYuaCIKICAgICAgICBDUFVfTjJBMDMsCgoKCgoKICAgICAgICBDUFVfSDYyODAsCgoKICAg ICAgICBDUFVfSTg2LAoKCgoKCiAgICAgICAgQ1BVX0kxODYsCiMgOTUgInNyYy9jcHVpbnRyZi5o IgogICAgICAgIENQVV9WMjAsCgoKICAgICAgICBDUFVfVjMwLAoKCiAgICAgICAgQ1BVX1YzMywK CgogICAgICAgIENQVV9WNjAsCgoKICAgICAgICBDUFVfSTgwMzUsCgoKICAgICAgICBDUFVfSTgw MzksCgoKICAgICAgICBDUFVfSTgwNDgsCgoKICAgICAgICBDUFVfTjc3NTEsCgoKICAgICAgICBD UFVfSThYNDEsCgoKICAgICAgICBDUFVfTTY4MDAsCgoKICAgICAgICBDUFVfTTY4MDEsCgoKICAg ICAgICBDUFVfTTY4MDIsCgoKICAgICAgICBDUFVfTTY4MDMsCgoKICAgICAgICBDUFVfTTY4MDgs CgoKICAgICAgICBDUFVfSEQ2MzcwMSwKCgogICAgICAgIENQVV9OU0M4MTA1LAoKCiAgICAgICAg Q1BVX002ODA1LAoKCiAgICAgICAgQ1BVX002ODcwNSwKCgogICAgICAgIENQVV9IRDYzNzA1LAoK CiAgICAgICAgQ1BVX0hENjMwOSwKCgogICAgICAgIENQVV9NNjgwOSwKCgogICAgICAgIENQVV9L T05BTUksCgoKICAgICAgICBDUFVfTTY4MDAwLAoKCiAgICAgICAgQ1BVX002ODAxMCwKCgogICAg ICAgIENQVV9NNjhFQzAyMCwKCgogICAgICAgIENQVV9NNjgwMjAsCgoKICAgICAgICBDUFVfVDEx LAoKCiAgICAgICAgQ1BVX1MyNjUwLAoKCiAgICAgICAgQ1BVX1RNUzM0MDEwLAoKCiAgICAgICAg Q1BVX1RNUzM0MDIwLAojIDE5MSAic3JjL2NwdWludHJmLmgiCiAgICAgICAgQ1BVX1RNUzk5ODAs CiMgMjAwICJzcmMvY3B1aW50cmYuaCIKICAgICAgICBDUFVfVE1TOTk5NSwKIyAyMDkgInNyYy9j cHVpbnRyZi5oIgogICAgICAgIENQVV9aODAwMCwKCgogICAgICAgIENQVV9UTVMzMjBDMTAsCgoK ICAgICAgICBDUFVfQ0NQVSwKCgogICAgICAgIENQVV9BRFNQMjEwMCwKCgogICAgICAgIENQVV9B RFNQMjEwNSwKCgogICAgICAgIENQVV9QU1hDUFUsCgoKICAgICAgICBDUFVfQVNBUCwKCgogICAg ICAgIENQVV9VUEQ3ODEwLAoKCgoKCgogICAgICAgIENQVV9SMzAwMEJFLAogICAgICAgIENQVV9S MzAwMExFLAoKCgoKCiAgICAgICAgQ1BVX0FSTSwKCgogICAgICAgIENQVV9TSDIsCiMgMjg4ICJz cmMvY3B1aW50cmYuaCIKICAgIENQVV9DT1VOVAp9OwojIDI5OSAic3JjL2NwdWludHJmLmgiCmVu dW0KewoKICAgICAgICBDTEVBUl9MSU5FID0gMCwKICAgICAgICBBU1NFUlRfTElORSwKICAgICAg ICBIT0xEX0xJTkUsCiAgICAgICAgUFVMU0VfTElORSwKCgogICAgICAgIElOVEVSTkFMX0NMRUFS X0xJTkUgPSAxMDAgKyBDTEVBUl9MSU5FLAogICAgICAgIElOVEVSTkFMX0FTU0VSVF9MSU5FID0g MTAwICsgQVNTRVJUX0xJTkUsCgoKICAgICAgICBNQVhfSVJRX0xJTkVTID0gMTYsCiAgICAgICAg SVJRX0xJTkVfTk1JID0gMTI3Cn07CiMgMzI1ICJzcmMvY3B1aW50cmYuaCIKZW51bQp7CiAgICAg ICAgTUFYX1JFR1MgPSAxMjgsCgoKCgogICAgICAgIFJFR19QUkVWSU9VU1BDID0gLTEsCgoKCiAg ICAgICAgUkVHX1BDID0gLTIsCgoKCiAgICAgICAgUkVHX1NQID0gLTMsCgoKCgoKCgogICAgICAg IFJFR19TUF9DT05URU5UUyA9IC00Cn07CgoKCmVudW0KewogICAgICAgIENQVV9JU19MRSA9IDAs CiAgICAgICAgQ1BVX0lTX0JFCn07CgoKCmVudW0KewogICAgICAgIENQVV9JTkZPX1JFRywKICAg ICAgICBDUFVfSU5GT19GTEFHUyA9IE1BWF9SRUdTLAogICAgICAgIENQVV9JTkZPX05BTUUsCiAg ICAgICAgQ1BVX0lORk9fRkFNSUxZLAogICAgICAgIENQVV9JTkZPX1ZFUlNJT04sCiAgICAgICAg Q1BVX0lORk9fRklMRSwKICAgICAgICBDUFVfSU5GT19DUkVESVRTLAogICAgICAgIENQVV9JTkZP X1JFR19MQVlPVVQsCiAgICAgICAgQ1BVX0lORk9fV0lOX0xBWU9VVAp9OwojIDM4MiAic3JjL2Nw dWludHJmLmgiCnN0cnVjdCBjcHVfaW50ZXJmYWNlCnsKCiAgICAgICAgdW5zaWduZWQgY3B1X251 bTsKCgogICAgICAgIHZvaWQgKCppbml0KSh2b2lkKTsKICAgICAgICB2b2lkICgqcmVzZXQpKHZv aWQgKnBhcmFtKTsKICAgICAgICB2b2lkICgqZXhpdCkodm9pZCk7CiAgICAgICAgaW50ICgqZXhl Y3V0ZSkoaW50IGN5Y2xlcyk7CiAgICAgICAgdm9pZCAoKmJ1cm4pKGludCBjeWNsZXMpOwogICAg ICAgIHVuc2lnbmVkICgqZ2V0X2NvbnRleHQpKHZvaWQgKnJlZyk7CiAgICAgICAgdm9pZCAoKnNl dF9jb250ZXh0KSh2b2lkICpyZWcpOwogICAgICAgIGNvbnN0IHZvaWQgKigqZ2V0X2N5Y2xlX3Rh YmxlKShpbnQgd2hpY2gpOwogICAgICAgIHZvaWQgKCpzZXRfY3ljbGVfdGFibGUpKGludCB3aGlj aCwgdm9pZCAqbmV3X3RhYmxlKTsKICAgICAgICB1bnNpZ25lZCAoKmdldF9yZWcpKGludCByZWdu dW0pOwogICAgICAgIHZvaWQgKCpzZXRfcmVnKShpbnQgcmVnbnVtLCB1bnNpZ25lZCB2YWwpOwog ICAgICAgIHZvaWQgKCpzZXRfaXJxX2xpbmUpKGludCBpcnFsaW5lLCBpbnQgbGluZXN0YXRlKTsK ICAgICAgICB2b2lkICgqc2V0X2lycV9jYWxsYmFjaykoaW50KCpjYWxsYmFjaykoaW50IGlycWxp bmUpKTsKICAgICAgICBjb25zdCBjaGFyICooKmNwdV9pbmZvKSh2b2lkICpjb250ZXh0LGludCBy ZWdudW0pOwogICAgICAgIHVuc2lnbmVkICgqY3B1X2Rhc20pKGNoYXIgKmJ1ZmZlcix1bnNpZ25l ZCBwYyk7CgoKICAgICAgICB1bnNpZ25lZCBudW1faXJxczsKICAgICAgICBpbnQgZGVmYXVsdF92 ZWN0b3I7CiAgICAgICAgaW50ICogaWNvdW50OwogICAgICAgIGRvdWJsZSBvdmVyY2xvY2s7CgoK ICAgICAgICBpbnQgZGF0YWJ1c193aWR0aDsKICAgICAgICBtZW1fcmVhZF9oYW5kbGVyIG1lbW9y eV9yZWFkOwogICAgICAgIG1lbV93cml0ZV9oYW5kbGVyIG1lbW9yeV93cml0ZTsKICAgICAgICBt ZW1fcmVhZF9oYW5kbGVyIGludGVybmFsX3JlYWQ7CiAgICAgICAgbWVtX3dyaXRlX2hhbmRsZXIg aW50ZXJuYWxfd3JpdGU7CiAgICAgICAgb2Zmc190IHBnbV9tZW1vcnlfYmFzZTsKICAgICAgICB2 b2lkICgqc2V0X29wX2Jhc2UpKG9mZnNfdCBwYyk7CiAgICAgICAgaW50IGFkZHJlc3Nfc2hpZnQ7 CiAgICAgICAgdW5zaWduZWQgYWRkcmVzc19iaXRzOwogICAgICAgIHVuc2lnbmVkIGVuZGlhbmVz czsKICAgICAgICB1bnNpZ25lZCBhbGlnbl91bml0OwogICAgICAgIHVuc2lnbmVkIG1heF9pbnN0 X2xlbjsKfTsKIyA0MzQgInNyYy9jcHVpbnRyZi5oIgppbnQgY3B1aW50cmZfaW5pdCh2b2lkKTsK CgppbnQgY3B1aW50cmZfaW5pdF9jcHUoaW50IGNwdW51bSwgaW50IGNwdXR5cGUpOwoKCnZvaWQg Y3B1aW50cmZfZXhpdF9jcHUoaW50IGNwdW51bSk7CgoKdm9pZCBjcHVpbnRyZl9wdXNoX2NvbnRl eHQoaW50IGNwdW51bSk7CgoKdm9pZCBjcHVpbnRyZl9wb3BfY29udGV4dCh2b2lkKTsKIyA0NTcg InNyYy9jcHVpbnRyZi5oIgp2b2lkIGFjdGl2ZWNwdV9hZGp1c3RfaWNvdW50KGludCBkZWx0YSk7 CgoKaW50IGFjdGl2ZWNwdV9nZXRfaWNvdW50KHZvaWQpOwoKCnZvaWQgYWN0aXZlY3B1X3Jlc2V0 X2Jhbmtpbmcodm9pZCk7CgoKdm9pZCBhY3RpdmVjcHVfc2V0X2lycV9saW5lKGludCBpcnFsaW5l LCBpbnQgc3RhdGUpOwoKCmNvbnN0IHZvaWQgKmFjdGl2ZWNwdV9nZXRfY3ljbGVfdGFibGUoaW50 IHdoaWNoKTsKCgp2b2lkIGFjdGl2ZWNwdV9zZXRfY3ljbGVfdGJsKGludCB3aGljaCwgdm9pZCAq bmV3X3RhYmxlKTsKCgp1bnNpZ25lZCBhY3RpdmVjcHVfZ2V0X3JlZyhpbnQgcmVnbnVtKTsKCgp2 b2lkIGFjdGl2ZWNwdV9zZXRfcmVnKGludCByZWdudW0sIHVuc2lnbmVkIHZhbCk7CgoKb2Zmc190 IGFjdGl2ZWNwdV9nZXRfcGNfYnl0ZSh2b2lkKTsKCgp2b2lkIGFjdGl2ZWNwdV9zZXRfb3BfYmFz ZSh1bnNpZ25lZCB2YWwpOwoKCnVuc2lnbmVkIGFjdGl2ZWNwdV9kYXNtKGNoYXIgKmJ1ZmZlciwg dW5zaWduZWQgcGMpOwoKCmNvbnN0IGNoYXIgKmFjdGl2ZWNwdV9mbGFncyh2b2lkKTsKCgpjb25z dCBjaGFyICphY3RpdmVjcHVfZHVtcF9yZWcoaW50IHJlZ251bSk7CgoKY29uc3QgY2hhciAqYWN0 aXZlY3B1X2R1bXBfc3RhdGUodm9pZCk7CgoKaW50IGFjdGl2ZWNwdV9kZWZhdWx0X2lycV92ZWN0 b3Iodm9pZCk7CgoKdW5zaWduZWQgYWN0aXZlY3B1X2FkZHJlc3NfYml0cyh2b2lkKTsKCgp1bnNp Z25lZCBhY3RpdmVjcHVfYWRkcmVzc19tYXNrKHZvaWQpOwoKCmludCBhY3RpdmVjcHVfYWRkcmVz c19zaGlmdCh2b2lkKTsKCgp1bnNpZ25lZCBhY3RpdmVjcHVfZW5kaWFuZXNzKHZvaWQpOwoKCnVu c2lnbmVkIGFjdGl2ZWNwdV9kYXRhYnVzX3dpZHRoKHZvaWQpOwoKCnVuc2lnbmVkIGFjdGl2ZWNw dV9hbGlnbl91bml0KHZvaWQpOwoKCnVuc2lnbmVkIGFjdGl2ZWNwdV9tYXhfaW5zdF9sZW4odm9p ZCk7CgoKY29uc3QgY2hhciAqYWN0aXZlY3B1X25hbWUodm9pZCk7CgoKY29uc3QgY2hhciAqYWN0 aXZlY3B1X2NvcmVfZmFtaWx5KHZvaWQpOwoKCmNvbnN0IGNoYXIgKmFjdGl2ZWNwdV9jb3JlX3Zl cnNpb24odm9pZCk7CgoKY29uc3QgY2hhciAqYWN0aXZlY3B1X2NvcmVfZmlsZSh2b2lkKTsKCgpj b25zdCBjaGFyICphY3RpdmVjcHVfY29yZV9jcmVkaXRzKHZvaWQpOwoKCmNvbnN0IGNoYXIgKmFj dGl2ZWNwdV9yZWdfbGF5b3V0KHZvaWQpOwoKCmNvbnN0IGNoYXIgKmFjdGl2ZWNwdV93aW5fbGF5 b3V0KHZvaWQpOwojIDU1MiAic3JjL2NwdWludHJmLmgiCmludCBjcHVudW1fZXhlY3V0ZShpbnQg Y3B1bnVtLCBpbnQgY3ljbGVzKTsKCgp2b2lkIGNwdW51bV9yZXNldChpbnQgY3B1bnVtLCB2b2lk ICpwYXJhbSwgaW50ICgqaXJxYWNrKShpbnQpKTsKCgpkYXRhOF90IGNwdW51bV9yZWFkX2J5dGUo aW50IGNwdW51bSwgb2Zmc190IGFkZHJlc3MpOwoKCnZvaWQgY3B1bnVtX3dyaXRlX2J5dGUoaW50 IGNwdW51bSwgb2Zmc190IGFkZHJlc3MsIGRhdGE4X3QgZGF0YSk7CgoKCnZvaWQgKmNwdW51bV9n ZXRfY29udGV4dF9wdHIoaW50IGNwdW51bSk7CgoKY29uc3Qgdm9pZCAqY3B1bnVtX2dldF9jeWNs ZV90YWJsZShpbnQgY3B1bnVtLCBpbnQgd2hpY2gpOwoKCnZvaWQgY3B1bnVtX3NldF9jeWNsZV90 YmwoaW50IGNwdW51bSwgaW50IHdoaWNoLCB2b2lkICpuZXdfdGFibGUpOwoKCnVuc2lnbmVkIGNw dW51bV9nZXRfcmVnKGludCBjcHVudW0sIGludCByZWdudW0pOwoKCnZvaWQgY3B1bnVtX3NldF9y ZWcoaW50IGNwdW51bSwgaW50IHJlZ251bSwgdW5zaWduZWQgdmFsKTsKCgpvZmZzX3QgY3B1bnVt X2dldF9wY19ieXRlKGludCBjcHVudW0pOwoKCnZvaWQgY3B1bnVtX3NldF9vcF9iYXNlKGludCBj cHVudW0sIHVuc2lnbmVkIHZhbCk7CgoKdW5zaWduZWQgY3B1bnVtX2Rhc20oaW50IGNwdW51bSwg Y2hhciAqYnVmZmVyLCB1bnNpZ25lZCBwYyk7CgoKY29uc3QgY2hhciAqY3B1bnVtX2ZsYWdzKGlu dCBjcHVudW0pOwoKCmNvbnN0IGNoYXIgKmNwdW51bV9kdW1wX3JlZyhpbnQgY3B1bnVtLCBpbnQg cmVnbnVtKTsKCgpjb25zdCBjaGFyICpjcHVudW1fZHVtcF9zdGF0ZShpbnQgY3B1bnVtKTsKCgpp bnQgY3B1bnVtX2RlZmF1bHRfaXJxX3ZlY3RvcihpbnQgY3B1bnVtKTsKCgp1bnNpZ25lZCBjcHVu dW1fYWRkcmVzc19iaXRzKGludCBjcHVudW0pOwoKCnVuc2lnbmVkIGNwdW51bV9hZGRyZXNzX21h c2soaW50IGNwdW51bSk7CgoKaW50IGNwdW51bV9hZGRyZXNzX3NoaWZ0KGludCBjcHVudW0pOwoK CnVuc2lnbmVkIGNwdW51bV9lbmRpYW5lc3MoaW50IGNwdW51bSk7CgoKdW5zaWduZWQgY3B1bnVt X2RhdGFidXNfd2lkdGgoaW50IGNwdW51bSk7CgoKdW5zaWduZWQgY3B1bnVtX2FsaWduX3VuaXQo aW50IGNwdW51bSk7CgoKdW5zaWduZWQgY3B1bnVtX21heF9pbnN0X2xlbihpbnQgY3B1bnVtKTsK Cgpjb25zdCBjaGFyICpjcHVudW1fbmFtZShpbnQgY3B1bnVtKTsKCgpjb25zdCBjaGFyICpjcHVu dW1fY29yZV9mYW1pbHkoaW50IGNwdW51bSk7CgoKY29uc3QgY2hhciAqY3B1bnVtX2NvcmVfdmVy c2lvbihpbnQgY3B1bnVtKTsKCgpjb25zdCBjaGFyICpjcHVudW1fY29yZV9maWxlKGludCBjcHVu dW0pOwoKCmNvbnN0IGNoYXIgKmNwdW51bV9jb3JlX2NyZWRpdHMoaW50IGNwdW51bSk7CgoKY29u c3QgY2hhciAqY3B1bnVtX3JlZ19sYXlvdXQoaW50IGNwdW51bSk7CgoKY29uc3QgY2hhciAqY3B1 bnVtX3dpbl9sYXlvdXQoaW50IGNwdW51bSk7CiMgNjUxICJzcmMvY3B1aW50cmYuaCIKaW50IGNw dXR5cGVfZGVmYXVsdF9pcnFfdmVjdG9yKGludCBjcHV0eXBlKTsKCgp1bnNpZ25lZCBjcHV0eXBl X2FkZHJlc3NfYml0cyhpbnQgY3B1dHlwZSk7CgoKdW5zaWduZWQgY3B1dHlwZV9hZGRyZXNzX21h c2soaW50IGNwdXR5cGUpOwoKCmludCBjcHV0eXBlX2FkZHJlc3Nfc2hpZnQoaW50IGNwdXR5cGUp OwoKCnVuc2lnbmVkIGNwdXR5cGVfZW5kaWFuZXNzKGludCBjcHV0eXBlKTsKCgp1bnNpZ25lZCBj cHV0eXBlX2RhdGFidXNfd2lkdGgoaW50IGNwdXR5cGUpOwoKCnVuc2lnbmVkIGNwdXR5cGVfYWxp Z25fdW5pdChpbnQgY3B1dHlwZSk7CgoKdW5zaWduZWQgY3B1dHlwZV9tYXhfaW5zdF9sZW4oaW50 IGNwdXR5cGUpOwoKCmNvbnN0IGNoYXIgKmNwdXR5cGVfbmFtZShpbnQgY3B1dHlwZSk7CgoKY29u c3QgY2hhciAqY3B1dHlwZV9jb3JlX2ZhbWlseShpbnQgY3B1dHlwZSk7CgoKY29uc3QgY2hhciAq Y3B1dHlwZV9jb3JlX3ZlcnNpb24oaW50IGNwdXR5cGUpOwoKCmNvbnN0IGNoYXIgKmNwdXR5cGVf Y29yZV9maWxlKGludCBjcHV0eXBlKTsKCgpjb25zdCBjaGFyICpjcHV0eXBlX2NvcmVfY3JlZGl0 cyhpbnQgY3B1dHlwZSk7CgoKY29uc3QgY2hhciAqY3B1dHlwZV9yZWdfbGF5b3V0KGludCBjcHV0 eXBlKTsKCgpjb25zdCBjaGFyICpjcHV0eXBlX3dpbl9sYXlvdXQoaW50IGNwdXR5cGUpOwojIDcw NCAic3JjL2NwdWludHJmLmgiCnZvaWQgY3B1X2R1bXBfc3RhdGVzKHZvaWQpOwoKCnZvaWQgY3B1 X3NldF9tNjhrX3Jlc2V0KGludCBjcHVudW0sIHZvaWQgKCpyZXNldGZuKSh2b2lkKSk7CiMgNzQx ICJzcmMvY3B1aW50cmYuaCIKc3RhdGljIF9faW5saW5lX18gY29uc3Qgc3RydWN0IGNwdV9pbnRl cmZhY2UgKmNwdXR5cGVfZ2V0X2ludGVyZmFjZShpbnQgY3B1dHlwZSkKewogICAgICAgIGV4dGVy biBjb25zdCBzdHJ1Y3QgY3B1X2ludGVyZmFjZSBjcHVpbnRyZltdOwogICAgICAgIHJldHVybiAm Y3B1aW50cmZbY3B1dHlwZV07Cn0KCgoKc3RhdGljIF9faW5saW5lX18gaW50IGNwdV9nZXRhY3Rp dmVjcHUodm9pZCkKewogICAgICAgIGV4dGVybiBpbnQgYWN0aXZlY3B1OwogICAgICAgIHJldHVy biBhY3RpdmVjcHU7Cn0KCgoKc3RhdGljIF9faW5saW5lX18gaW50IGNwdV9nZXR0b3RhbGNwdSh2 b2lkKQp7CiAgICAgICAgZXh0ZXJuIGludCB0b3RhbGNwdTsKICAgICAgICByZXR1cm4gdG90YWxj cHU7Cn0KIyA2MiAic3JjL2RyaXZlci5oIiAyCiMgMSAic3JjL2NwdWV4ZWMuaCIgMQojIDI3ICJz cmMvY3B1ZXhlYy5oIgpzdHJ1Y3QgTWFjaGluZUNQVQp7CiAgICAgICAgaW50IGNwdV90eXBlOwog ICAgICAgIGludCBjcHVfY2xvY2s7CiAgICAgICAgY29uc3Qgdm9pZCAqbWVtb3J5X3JlYWQ7CiAg ICAgICAgY29uc3Qgdm9pZCAqbWVtb3J5X3dyaXRlOwogICAgICAgIGNvbnN0IHZvaWQgKnBvcnRf cmVhZDsKICAgICAgICBjb25zdCB2b2lkICpwb3J0X3dyaXRlOwogICAgICAgIHZvaWQgKCp2Ymxh bmtfaW50ZXJydXB0KSh2b2lkKTsKICAgICAgICBpbnQgdmJsYW5rX2ludGVycnVwdHNfcGVyX2Zy YW1lOwogICAgICAgIHZvaWQgKCp0aW1lZF9pbnRlcnJ1cHQpKHZvaWQpOwogICAgICAgIGludCB0 aW1lZF9pbnRlcnJ1cHRzX3Blcl9zZWNvbmQ7CiAgICAgICAgdm9pZCAqIHJlc2V0X3BhcmFtOwog ICAgICAgIGNvbnN0IGNoYXIgKnRhZzsKfTsKIyA1MSAic3JjL2NwdWV4ZWMuaCIKZW51bQp7Cgog ICAgICAgIENQVV9GTEFHU19NQVNLID0gMHhmZjAwLAoKCgogICAgICAgIENQVV9BVURJT19DUFUg PSAweDgwMDAsCgoKICAgICAgICBDUFVfMTZCSVRfUE9SVCA9IDB4NDAwMAp9OwojIDczICJzcmMv Y3B1ZXhlYy5oIgppbnQgY3B1X2luaXQodm9pZCk7CgoKdm9pZCBjcHVfcnVuKHZvaWQpOwoKCnZv aWQgY3B1X2V4aXQodm9pZCk7CgoKdm9pZCBtYWNoaW5lX3Jlc2V0KHZvaWQpOwojIDkzICJzcmMv Y3B1ZXhlYy5oIgplbnVtCnsKICAgICAgICBMT0FEU0FWRV9OT05FLAogICAgICAgIExPQURTQVZF X1NBVkUsCiAgICAgICAgTE9BRFNBVkVfTE9BRAp9Owp2b2lkIGNwdV9sb2Fkc2F2ZV9zY2hlZHVs ZShpbnQgdHlwZSwgY2hhciBpZCk7CnZvaWQgY3B1X2xvYWRzYXZlX3Jlc2V0KHZvaWQpOwojIDEx MSAic3JjL2NwdWV4ZWMuaCIKdm9pZCB3YXRjaGRvZ19yZXNldF93KF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0 YThfdCBkYXRhKTsKZGF0YThfdCB3YXRjaGRvZ19yZXNldF9yKF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKCgp2b2lkIHdhdGNoZG9nX3Jlc2V0MTZfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZf dCBtZW1fbWFzayk7CmRhdGExNl90IHdhdGNoZG9nX3Jlc2V0MTZfcihfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKCgp2b2lkIHdhdGNoZG9nX3Jlc2V0MzJfdyhfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IGRhdGEzMl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMzJfdCBtZW1f bWFzayk7CmRhdGEzMl90IHdhdGNoZG9nX3Jlc2V0MzJfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEzMl90 IG1lbV9tYXNrKTsKIyAxMzEgInNyYy9jcHVleGVjLmgiCnZvaWQgY3B1X3NldF9yZXNldF9saW5l KGludCBjcHUsaW50IHN0YXRlKTsKCgp2b2lkIGNwdV9zZXRfaGFsdF9saW5lKGludCBjcHUsaW50 IHN0YXRlKTsKCgppbnQgY3B1X2dldHN0YXR1cyhpbnQgY3B1bnVtKTsKIyAxNDggInNyYy9jcHVl eGVjLmgiCmludCBjeWNsZXNfY3VycmVudGx5X3Jhbih2b2lkKTsKCgppbnQgY3ljbGVzX2xlZnRf dG9fcnVuKHZvaWQpOwoKCmludCBjcHVfZ2V0dG90YWxjeWNsZXModm9pZCk7CgoKaW50IGNwdV9n ZXRpY291bnQodm9pZCk7CgoKaW50IGNwdV9zY2FsZWJ5ZmNvdW50KGludCB2YWx1ZSk7CiMgMTcx ICJzcmMvY3B1ZXhlYy5oIgp2b2lkIGNwdV9pbml0X3JlZnJlc2hfdGltZXIodm9pZCk7CgoKaW50 IGNwdV9nZXRzY2FubGluZSh2b2lkKTsKCgpkb3VibGUgY3B1X2dldHNjYW5saW5ldGltZShpbnQg c2NhbmxpbmUpOwoKCmRvdWJsZSBjcHVfZ2V0c2NhbmxpbmVwZXJpb2Qodm9pZCk7CgoKaW50IGNw dV9nZXRob3J6YmVhbXBvcyh2b2lkKTsKCgppbnQgY3B1X2dldHZibGFuayh2b2lkKTsKCgppbnQg Y3B1X2dldGN1cnJlbnRmcmFtZSh2b2lkKTsKIyAyMDAgInNyYy9jcHVleGVjLmgiCnZvaWQgY3B1 X3RyaWdnZXIoaW50IHRyaWdnZXIpOwoKCnZvaWQgY3B1X3RyaWdnZXJ0aW1lKGRvdWJsZSBkdXJh dGlvbiwgaW50IHRyaWdnZXIpOwoKCnZvaWQgY3B1X3RyaWdnZXJpbnQoaW50IGNwdW51bSk7CgoK dm9pZCBjcHVfc3BpbnVudGlsX3RyaWdnZXIoaW50IHRyaWdnZXIpOwoKCnZvaWQgY3B1X3lpZWxk dW50aWxfdHJpZ2dlcihpbnQgdHJpZ2dlcik7CgoKdm9pZCBjcHVfc3BpbnVudGlsX2ludCh2b2lk KTsKCgp2b2lkIGNwdV95aWVsZHVudGlsX2ludCh2b2lkKTsKCgp2b2lkIGNwdV9zcGluKHZvaWQp OwoKCnZvaWQgY3B1X3lpZWxkKHZvaWQpOwoKCnZvaWQgY3B1X3NwaW51bnRpbF90aW1lKGRvdWJs ZSBkdXJhdGlvbik7CgoKdm9pZCBjcHVfeWllbGR1bnRpbF90aW1lKGRvdWJsZSBkdXJhdGlvbik7 CiMgMjQ1ICJzcmMvY3B1ZXhlYy5oIgppbnQgY3B1X2dldGlsb29wcyh2b2lkKTsKIyAyNTggInNy Yy9jcHVleGVjLmgiCnR5cGVkZWYgc3RydWN0CnsKICAgICAgICB2b2lkICgqcmVzZXQpKGludCk7 CiAgICAgICAgaW50ICgqaW50ZXJydXB0X2VudHJ5KShpbnQpOwogICAgICAgIHZvaWQgKCppbnRl cnJ1cHRfcmV0aSkoaW50KTsKICAgICAgICBpbnQgaXJxX3BhcmFtOwp9IFo4MF9EYWlzeUNoYWlu OwojIDYzICJzcmMvZHJpdmVyLmgiIDIKIyAxICJzcmMvY3B1aW50LmgiIDEKIyAyNyAic3JjL2Nw dWludC5oIgplbnVtCnsKCiAgICAgICAgSU5URVJSVVBUX05PTkUgPSAxMjYKfTsKIyA0MSAic3Jj L2NwdWludC5oIgppbnQgY3B1aW50X2luaXQodm9pZCk7Cgp2b2lkIGNwdWludF9yZXNldF9jcHUo aW50IGNwdW51bSk7CgpleHRlcm4gaW50ICgqY3B1X2lycV9jYWxsYmFja3NbXSkoaW50KTsKIyA1 NiAic3JjL2NwdWludC5oIgp2b2lkIGNwdV9zZXRfaXJxX2NhbGxiYWNrKGludCBjcHVudW0sIGlu dCAoKmNhbGxiYWNrKShpbnQgaXJxbGluZSkpOwoKCnZvaWQgY3B1X2lycV9saW5lX3ZlY3Rvcl93 KGludCBjcHVudW0sIGludCBpcnFsaW5lLCBpbnQgdmVjdG9yKTsKCgoKdm9pZCBjcHVfc2V0X2ly cV9saW5lKGludCBjcHVudW0sIGludCBpcnFsaW5lLCBpbnQgc3RhdGUpOwoKCnZvaWQgY3B1X3Nl dF9pcnFfbGluZV9hbmRfdmVjdG9yKGludCBjcHVudW0sIGludCBpcnFsaW5lLCBpbnQgc3RhdGUs IGludCB2ZWN0b3IpOwojIDc5ICJzcmMvY3B1aW50LmgiCnZvaWQgbm1pX2xpbmVfcHVsc2Uodm9p ZCk7CnZvaWQgbm1pX2xpbmVfYXNzZXJ0KHZvaWQpOwoKdm9pZCBpcnEwX2xpbmVfaG9sZCh2b2lk KTsKdm9pZCBpcnEwX2xpbmVfcHVsc2Uodm9pZCk7CnZvaWQgaXJxMF9saW5lX2Fzc2VydCh2b2lk KTsKCnZvaWQgaXJxMV9saW5lX2hvbGQodm9pZCk7CnZvaWQgaXJxMV9saW5lX3B1bHNlKHZvaWQp Owp2b2lkIGlycTFfbGluZV9hc3NlcnQodm9pZCk7Cgp2b2lkIGlycTJfbGluZV9ob2xkKHZvaWQp Owp2b2lkIGlycTJfbGluZV9wdWxzZSh2b2lkKTsKdm9pZCBpcnEyX2xpbmVfYXNzZXJ0KHZvaWQp OwoKdm9pZCBpcnEzX2xpbmVfaG9sZCh2b2lkKTsKdm9pZCBpcnEzX2xpbmVfcHVsc2Uodm9pZCk7 CnZvaWQgaXJxM19saW5lX2Fzc2VydCh2b2lkKTsKCnZvaWQgaXJxNF9saW5lX2hvbGQodm9pZCk7 CnZvaWQgaXJxNF9saW5lX3B1bHNlKHZvaWQpOwp2b2lkIGlycTRfbGluZV9hc3NlcnQodm9pZCk7 Cgp2b2lkIGlycTVfbGluZV9ob2xkKHZvaWQpOwp2b2lkIGlycTVfbGluZV9wdWxzZSh2b2lkKTsK dm9pZCBpcnE1X2xpbmVfYXNzZXJ0KHZvaWQpOwoKdm9pZCBpcnE2X2xpbmVfaG9sZCh2b2lkKTsK dm9pZCBpcnE2X2xpbmVfcHVsc2Uodm9pZCk7CnZvaWQgaXJxNl9saW5lX2Fzc2VydCh2b2lkKTsK CnZvaWQgaXJxN19saW5lX2hvbGQodm9pZCk7CnZvaWQgaXJxN19saW5lX3B1bHNlKHZvaWQpOwp2 b2lkIGlycTdfbGluZV9hc3NlcnQodm9pZCk7CiMgMTI5ICJzcmMvY3B1aW50LmgiCnZvaWQgY3B1 X2ludGVycnVwdF9lbmFibGUoaW50IGNwdSxpbnQgZW5hYmxlZCk7CnZvaWQgaW50ZXJydXB0X2Vu YWJsZV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBpbnRlcnJ1cHRfdmVjdG9y X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwpkYXRhOF90IGludGVycnVwdF9lbmFibGVf cihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CiMgNjQgInNyYy9k cml2ZXIuaCIgMgojIDEgInNyYy9zbmRpbnRyZi5oIiAxCgoKCgpzdHJ1Y3QgTWFjaGluZVNvdW5k CnsKICAgICAgICBpbnQgc291bmRfdHlwZTsKICAgICAgICB2b2lkICpzb3VuZF9pbnRlcmZhY2U7 CiAgICAgICAgY29uc3QgY2hhciAqdGFnOwp9OwoKCiMgMSAic3JjL3NvdW5kL21peGVyLmgiIDEK IyA3MiAic3JjL3NvdW5kL21peGVyLmgiCmludCBtaXhlcl9zaF9zdGFydCh2b2lkKTsKdm9pZCBt aXhlcl9zaF9zdG9wKHZvaWQpOwp2b2lkIG1peGVyX3NoX3VwZGF0ZSh2b2lkKTsKaW50IG1peGVy X2FsbG9jYXRlX2NoYW5uZWwoaW50IGRlZmF1bHRfbWl4aW5nX2xldmVsKTsKaW50IG1peGVyX2Fs bG9jYXRlX2NoYW5uZWxzKGludCBjaGFubmVscyxjb25zdCBpbnQgKmRlZmF1bHRfbWl4aW5nX2xl dmVscyk7CnZvaWQgbWl4ZXJfc2V0X25hbWUoaW50IGNoYW5uZWwsY29uc3QgY2hhciAqbmFtZSk7 CmNvbnN0IGNoYXIgKm1peGVyX2dldF9uYW1lKGludCBjaGFubmVsKTsKIyA4NyAic3JjL3NvdW5k L21peGVyLmgiCnZvaWQgbWl4ZXJfc2V0X3ZvbHVtZShpbnQgY2hhbm5lbCxpbnQgdm9sdW1lKTsK CnZvaWQgbWl4ZXJfcGxheV9zYW1wbGUoaW50IGNoYW5uZWwsSU5UOCAqZGF0YSxpbnQgbGVuLGlu dCBmcmVxLGludCBsb29wKTsKdm9pZCBtaXhlcl9wbGF5X3NhbXBsZV8xNihpbnQgY2hhbm5lbCxJ TlQxNiAqZGF0YSxpbnQgbGVuLGludCBmcmVxLGludCBsb29wKTsKdm9pZCBtaXhlcl9zdG9wX3Nh bXBsZShpbnQgY2hhbm5lbCk7CmludCBtaXhlcl9pc19zYW1wbGVfcGxheWluZyhpbnQgY2hhbm5l bCk7CnZvaWQgbWl4ZXJfc2V0X3NhbXBsZV9mcmVxdWVuY3koaW50IGNoYW5uZWwsaW50IGZyZXEp Owp2b2lkIG1peGVyX3NvdW5kX2VuYWJsZV9nbG9iYWxfdyhpbnQgZW5hYmxlKTsKCnZvaWQgbWl4 ZXJfcGxheV9zdHJlYW1lZF9zYW1wbGVfMTYoaW50IGNoYW5uZWwsSU5UMTYgKmRhdGEsaW50IGxl bixpbnQgZnJlcSk7CmludCBtaXhlcl9zYW1wbGVzX3RoaXNfZnJhbWUodm9pZCk7CmludCBtaXhl cl9uZWVkX3NhbXBsZXNfdGhpc19mcmFtZShpbnQgY2hhbm5lbCxpbnQgZnJlcSk7CnZvaWQgbWl4 ZXJfc2V0X2xvd3Bhc3NfZnJlcXVlbmN5KGludCBjaCwgaW50IGZyZXEpOwoKCnZvaWQgbWl4ZXJf c2V0X21peGluZ19sZXZlbChpbnQgY2hhbm5lbCxpbnQgbGV2ZWwpOwppbnQgbWl4ZXJfZ2V0X21p eGluZ19sZXZlbChpbnQgbGV2ZWwpOwppbnQgbWl4ZXJfZ2V0X2RlZmF1bHRfbWl4aW5nX2xldmVs KGludCBsZXZlbCk7Cgp2b2lkIG1peGVyX3JlYWRfY29uZmlnKHZvaWQgKmYpOwp2b2lkIG1peGVy X3dyaXRlX2NvbmZpZyh2b2lkICpmKTsKCnZvaWQgbWl4ZXJfc2V0X3N0ZXJlb192b2x1bWUoaW50 IGNoLCBpbnQgbF92b2wsIGludCByX3ZvbCApOwojIDE0ICJzcmMvc25kaW50cmYuaCIgMgojIDEg InNyYy9zb3VuZC9zdHJlYW1zLmgiIDEKCgoKCgoKCnZvaWQgc2V0X1JDX2ZpbHRlcihpbnQgY2hh bm5lbCxpbnQgUjEsaW50IFIyLGludCBSMyxpbnQgQyk7CgppbnQgc3RyZWFtc19zaF9zdGFydCh2 b2lkKTsKdm9pZCBzdHJlYW1zX3NoX3N0b3Aodm9pZCk7CnZvaWQgc3RyZWFtc19zaF91cGRhdGUo dm9pZCk7CgppbnQgc3RyZWFtX2luaXQoY29uc3QgY2hhciAqbmFtZSxpbnQgZGVmYXVsdF9taXhp bmdfbGV2ZWwsCiAgICAgICAgICAgICAgICBpbnQgc2FtcGxlX3JhdGUsCiAgICAgICAgICAgICAg ICBpbnQgcGFyYW0sdm9pZCAoKmNhbGxiYWNrKShpbnQgcGFyYW0sSU5UMTYgKmJ1ZmZlcixpbnQg bGVuZ3RoKSk7CmludCBzdHJlYW1faW5pdF9tdWx0aShpbnQgY2hhbm5lbHMsY29uc3QgY2hhciAq Km5hbWVzLGNvbnN0IGludCAqZGVmYXVsdF9taXhpbmdfbGV2ZWxzLAogICAgICAgICAgICAgICAg aW50IHNhbXBsZV9yYXRlLAogICAgICAgICAgICAgICAgaW50IHBhcmFtLHZvaWQgKCpjYWxsYmFj aykoaW50IHBhcmFtLElOVDE2ICoqYnVmZmVyLGludCBsZW5ndGgpKTsKdm9pZCBzdHJlYW1fdXBk YXRlKGludCBjaGFubmVsLGludCBtaW5faW50ZXJ2YWwpOwojIDE1ICJzcmMvc25kaW50cmYuaCIg MgoKCiMgMSAic3JjL3NvdW5kL3NhbXBsZXMuaCIgMQoKCgpzdHJ1Y3QgU2FtcGxlc2ludGVyZmFj ZQp7CiAgICAgICAgaW50IGNoYW5uZWxzOwogICAgICAgIGludCB2b2x1bWU7CiAgICAgICAgY29u c3QgY2hhciAqKnNhbXBsZW5hbWVzOwp9OwoKCgoKCnZvaWQgc2FtcGxlX3N0YXJ0KGludCBjaGFu bmVsLGludCBzYW1wbGVudW0saW50IGxvb3ApOwp2b2lkIHNhbXBsZV9zZXRfZnJlcShpbnQgY2hh bm5lbCxpbnQgZnJlcSk7CnZvaWQgc2FtcGxlX3NldF92b2x1bWUoaW50IGNoYW5uZWwsaW50IHZv bHVtZSk7CnZvaWQgc2FtcGxlX3N0b3AoaW50IGNoYW5uZWwpOwppbnQgc2FtcGxlX3BsYXlpbmco aW50IGNoYW5uZWwpOwoKaW50IHNhbXBsZXNfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVT b3VuZCAqbXNvdW5kKTsKIyAxOCAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9k YWMuaCIgMQojIDEwICJzcmMvc291bmQvZGFjLmgiCnN0cnVjdCBEQUNpbnRlcmZhY2UKewogICAg ICAgIGludCBudW07CiAgICAgICAgaW50IG1peGluZ19sZXZlbFs0XTsKfTsKCmludCBEQUNfc2hf c3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBEQUNfZGF0YV93 KGludCBudW0saW50IGRhdGEpOwp2b2lkIERBQ19zaWduZWRfZGF0YV93KGludCBudW0saW50IGRh dGEpOwp2b2lkIERBQ19kYXRhXzE2X3coaW50IG51bSxpbnQgZGF0YSk7CnZvaWQgREFDX3NpZ25l ZF9kYXRhXzE2X3coaW50IG51bSxpbnQgZGF0YSk7Cgp2b2lkIERBQ18wX2RhdGFfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgREFDXzFfZGF0YV93KF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0 YThfdCBkYXRhKTsKdm9pZCBEQUNfMF9zaWduZWRfZGF0YV93KF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThf dCBkYXRhKTsKdm9pZCBEQUNfMV9zaWduZWRfZGF0YV93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBk YXRhKTsKIyAyMSAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9kaXNjcmV0ZS5o IiAxCiMgNDEyICJzcmMvc291bmQvZGlzY3JldGUuaCIKc3RydWN0IGRpc2NyZXRlX3NvdW5kX2Js b2NrCnsKICAgICAgICBpbnQgbm9kZTsKICAgICAgICBpbnQgdHlwZTsKICAgICAgICBpbnQgaW5w dXRfbm9kZTA7CiAgICAgICAgaW50IGlucHV0X25vZGUxOwogICAgICAgIGludCBpbnB1dF9ub2Rl MjsKICAgICAgICBpbnQgaW5wdXRfbm9kZTM7CiAgICAgICAgaW50IGlucHV0X25vZGU0OwogICAg ICAgIGludCBpbnB1dF9ub2RlNTsKICAgICAgICBkb3VibGUgaW5pdGlhbDA7CiAgICAgICAgZG91 YmxlIGluaXRpYWwxOwogICAgICAgIGRvdWJsZSBpbml0aWFsMjsKICAgICAgICBkb3VibGUgaW5p dGlhbDM7CiAgICAgICAgZG91YmxlIGluaXRpYWw0OwogICAgICAgIGRvdWJsZSBpbml0aWFsNTsK fTsKCnN0cnVjdCBub2RlX2Rlc2NyaXB0aW9uCnsKICAgICAgICBpbnQgbm9kZTsKICAgICAgICBp bnQgbW9kdWxlOwogICAgICAgIGRvdWJsZSBvdXRwdXQ7CiAgICAgICAgc3RydWN0IG5vZGVfZGVz Y3JpcHRpb24gKmlucHV0X25vZGUwOwogICAgICAgIHN0cnVjdCBub2RlX2Rlc2NyaXB0aW9uICpp bnB1dF9ub2RlMTsKICAgICAgICBzdHJ1Y3Qgbm9kZV9kZXNjcmlwdGlvbiAqaW5wdXRfbm9kZTI7 CiAgICAgICAgc3RydWN0IG5vZGVfZGVzY3JpcHRpb24gKmlucHV0X25vZGUzOwogICAgICAgIHN0 cnVjdCBub2RlX2Rlc2NyaXB0aW9uICppbnB1dF9ub2RlNDsKICAgICAgICBzdHJ1Y3Qgbm9kZV9k ZXNjcmlwdGlvbiAqaW5wdXRfbm9kZTU7CiAgICAgICAgZG91YmxlIGlucHV0MDsKICAgICAgICBk b3VibGUgaW5wdXQxOwogICAgICAgIGRvdWJsZSBpbnB1dDI7CiAgICAgICAgZG91YmxlIGlucHV0 MzsKICAgICAgICBkb3VibGUgaW5wdXQ0OwogICAgICAgIGRvdWJsZSBpbnB1dDU7CiAgICAgICAg dm9pZCAqY29udGV4dDsKfTsKCnN0cnVjdCBkaXNjcmV0ZV9tb2R1bGUKewogICAgICAgIGludCB0 eXBlOwogICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgaW50ICgqaW5pdCkgKHN0cnVjdCBub2Rl X2Rlc2NyaXB0aW9uICpub2RlKTsKICAgICAgICBpbnQgKCpraWxsKSAoc3RydWN0IG5vZGVfZGVz Y3JpcHRpb24gKm5vZGUpOwogICAgICAgIGludCAoKnJlc2V0KSAoc3RydWN0IG5vZGVfZGVzY3Jp cHRpb24gKm5vZGUpOwogICAgICAgIGludCAoKnN0ZXApIChzdHJ1Y3Qgbm9kZV9kZXNjcmlwdGlv biAqbm9kZSk7Cn07CgplbnVtIHsgTk9ERV8wMD0weDQwMDAwMDAwCiAgICAgICAgICAgICAgLCBO T0RFXzAxLCBOT0RFXzAyLCBOT0RFXzAzLCBOT0RFXzA0LCBOT0RFXzA1LCBOT0RFXzA2LCBOT0RF XzA3LCBOT0RFXzA4LCBOT0RFXzA5LAogICAgICAgTk9ERV8xMCwgTk9ERV8xMSwgTk9ERV8xMiwg Tk9ERV8xMywgTk9ERV8xNCwgTk9ERV8xNSwgTk9ERV8xNiwgTk9ERV8xNywgTk9ERV8xOCwgTk9E RV8xOSwKICAgICAgIE5PREVfMjAsIE5PREVfMjEsIE5PREVfMjIsIE5PREVfMjMsIE5PREVfMjQs IE5PREVfMjUsIE5PREVfMjYsIE5PREVfMjcsIE5PREVfMjgsIE5PREVfMjksCiAgICAgICBOT0RF XzMwLCBOT0RFXzMxLCBOT0RFXzMyLCBOT0RFXzMzLCBOT0RFXzM0LCBOT0RFXzM1LCBOT0RFXzM2 LCBOT0RFXzM3LCBOT0RFXzM4LCBOT0RFXzM5LAogICAgICAgTk9ERV80MCwgTk9ERV80MSwgTk9E RV80MiwgTk9ERV80MywgTk9ERV80NCwgTk9ERV80NSwgTk9ERV80NiwgTk9ERV80NywgTk9ERV80 OCwgTk9ERV80OSwKICAgICAgIE5PREVfNTAsIE5PREVfNTEsIE5PREVfNTIsIE5PREVfNTMsIE5P REVfNTQsIE5PREVfNTUsIE5PREVfNTYsIE5PREVfNTcsIE5PREVfNTgsIE5PREVfNTksCiAgICAg ICBOT0RFXzYwLCBOT0RFXzYxLCBOT0RFXzYyLCBOT0RFXzYzLCBOT0RFXzY0LCBOT0RFXzY1LCBO T0RFXzY2LCBOT0RFXzY3LCBOT0RFXzY4LCBOT0RFXzY5LAogICAgICAgTk9ERV83MCwgTk9ERV83 MSwgTk9ERV83MiwgTk9ERV83MywgTk9ERV83NCwgTk9ERV83NSwgTk9ERV83NiwgTk9ERV83Nywg Tk9ERV83OCwgTk9ERV83OSwKICAgICAgIE5PREVfODAsIE5PREVfODEsIE5PREVfODIsIE5PREVf ODMsIE5PREVfODQsIE5PREVfODUsIE5PREVfODYsIE5PREVfODcsIE5PREVfODgsIE5PREVfODks CiAgICAgICBOT0RFXzkwLCBOT0RFXzkxLCBOT0RFXzkyLCBOT0RFXzkzLCBOT0RFXzk0LCBOT0RF Xzk1LCBOT0RFXzk2LCBOT0RFXzk3LCBOT0RFXzk4LCBOT0RFXzk5IH07CiMgNDkwICJzcmMvc291 bmQvZGlzY3JldGUuaCIKZW51bSB7CgogICAgICAgICAgICAgICAgRFNTX05VTEwsCiAgICAgICAg ICAgICAgICBEU1NfQ09OU1RBTlQsCiAgICAgICAgICAgICAgICBEU1NfSU5QVVQsCiAgICAgICAg ICAgICAgICBEU1NfTk9JU0UsCiAgICAgICAgICAgICAgICBEU1NfU1FVQVJFV0FWRSwKICAgICAg ICAgICAgICAgIERTU19TSU5FV0FWRSwKICAgICAgICAgICAgICAgIERTU19PTkVTSE9ULAoKCgog ICAgICAgICAgICAgICAgRFNUX1JDRklMVEVSLAoKCiAgICAgICAgICAgICAgICBEU1RfR0FJTiwK CiAgICAgICAgICAgICAgICBEU1RfQURERVIsCgoKICAgICAgICAgICAgICAgIERTRF9ORTU1NSwK CgoKICAgICAgICAgICAgICAgIERTT19PVVRQVVQKfTsKIyA1NTUgInNyYy9zb3VuZC9kaXNjcmV0 ZS5oIgppbnQgZGlzY3JldGVfc2hfc3RhcnQgKGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1z b3VuZCk7CnZvaWQgZGlzY3JldGVfc2hfc3RvcCAodm9pZCk7CnZvaWQgZGlzY3JldGVfc2hfcmVz ZXQgKHZvaWQpOwp2b2lkIGRpc2NyZXRlX3NoX3VwZGF0ZSAodm9pZCk7Cgp2b2lkIGRpc2NyZXRl X3NvdW5kX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwpkYXRhOF90IGRpc2NyZXRlX3Nv dW5kX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwojIDI0ICJz cmMvc25kaW50cmYuaCIgMgoKCiMgMSAic3JjL3NvdW5kL2F5ODkxMC5oIiAxCgoKCgoKCnN0cnVj dCBBWTg5MTBpbnRlcmZhY2UKewogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGJhc2VjbG9j azsKICAgICAgICBpbnQgbWl4aW5nX2xldmVsWzVdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIg cG9ydEFyZWFkWzVdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG9ydEJyZWFkWzVdOwogICAg ICAgIG1lbV93cml0ZV9oYW5kbGVyIHBvcnRBd3JpdGVbNV07CiAgICAgICAgbWVtX3dyaXRlX2hh bmRsZXIgcG9ydEJ3cml0ZVs1XTsKICAgICAgICB2b2lkICgqaGFuZGxlcls1XSkoaW50IGlycSk7 Cn07Cgp2b2lkIEFZODkxMF9yZXNldChpbnQgY2hpcCk7Cgp2b2lkIEFZODkxMF9zZXRfY2xvY2so aW50IGNoaXAsaW50IF9jbG9jayk7CnZvaWQgQVk4OTEwX3NldF92b2x1bWUoaW50IGNoaXAsaW50 IGNoYW5uZWwsaW50IHZvbHVtZSk7CgoKdm9pZCBBWTg5MTBXcml0ZShpbnQgY2hpcCxpbnQgYSxp bnQgZGF0YSk7CmludCBBWTg5MTBSZWFkKGludCBjaGlwKTsKCgpkYXRhOF90IEFZODkxMF9yZWFk X3BvcnRfMF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0 YThfdCBBWTg5MTBfcmVhZF9wb3J0XzFfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCk7CmRhdGE4X3QgQVk4OTEwX3JlYWRfcG9ydF8yX3IoX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IEFZODkxMF9yZWFkX3BvcnRfM19y KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBBWTg5 MTBfcmVhZF9wb3J0XzRfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNl dCk7CmRhdGExNl90IEFZODkxMF9yZWFkX3BvcnRfMF9sc2JfcihfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEx Nl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgQVk4OTEwX3JlYWRfcG9ydF8xX2xzYl9yKF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBBWTg5MTBfcmVhZF9wb3J0XzJfbHNi X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IEFZODkxMF9yZWFk X3BvcnRfM19sc2JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3Qg QVk4OTEwX3JlYWRfcG9ydF80X2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2sp OwpkYXRhMTZfdCBBWTg5MTBfcmVhZF9wb3J0XzBfbXNiX3IoX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZf dCBtZW1fbWFzayk7CmRhdGExNl90IEFZODkxMF9yZWFkX3BvcnRfMV9tc2JfcihfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgQVk4OTEwX3JlYWRfcG9ydF8yX21zYl9y KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBBWTg5MTBfcmVhZF9w b3J0XzNfbXNiX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IEFZ ODkxMF9yZWFkX3BvcnRfNF9tc2JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsK CnZvaWQgQVk4OTEwX2NvbnRyb2xfcG9ydF8wX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEp Owp2b2lkIEFZODkxMF9jb250cm9sX3BvcnRfMV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRh KTsKdm9pZCBBWTg5MTBfY29udHJvbF9wb3J0XzJfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0 YSk7CnZvaWQgQVk4OTEwX2NvbnRyb2xfcG9ydF8zX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRh dGEpOwp2b2lkIEFZODkxMF9jb250cm9sX3BvcnRfNF93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBk YXRhKTsKdm9pZCBBWTg5MTBfY29udHJvbF9wb3J0XzBfbHNiX3coX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh MTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2sp Owp2b2lkIEFZODkxMF9jb250cm9sX3BvcnRfMV9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZv aWQgQVk4OTEwX2NvbnRyb2xfcG9ydF8yX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0 YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBB WTg5MTBfY29udHJvbF9wb3J0XzNfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIEFZODkx MF9jb250cm9sX3BvcnRfNF9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX2Nv bnRyb2xfcG9ydF8wX21zYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBBWTg5MTBfY29udHJv bF9wb3J0XzFfbXNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIEFZODkxMF9jb250cm9sX3Bv cnRfMl9tc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX2NvbnRyb2xfcG9ydF8z X21zYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBBWTg5MTBfY29udHJvbF9wb3J0XzRfbXNi X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgZGF0YTE2X3QgbWVtX21hc2spOwoKdm9pZCBBWTg5MTBfd3JpdGVfcG9ydF8wX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIEFZODkxMF93cml0ZV9wb3J0XzFfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfMl93KF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBBWTg5MTBfd3JpdGVfcG9ydF8zX3coX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIEFZODkxMF93cml0ZV9wb3J0XzRfdyhfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfMF9sc2JfdyhfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZf dCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfMV9sc2JfdyhfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1f bWFzayk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfMl9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEx Nl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7 CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfM19sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRh dGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQg QVk4OTEwX3dyaXRlX3BvcnRfNF9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEw X3dyaXRlX3BvcnRfMF9tc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX3dyaXRl X3BvcnRfMV9tc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRf Ml9tc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfM19tc2Jf dyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgQVk4OTEwX3dyaXRlX3BvcnRfNF9tc2JfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh MTZfdCBtZW1fbWFzayk7CgppbnQgQVk4OTEwX3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5l U291bmQgKm1zb3VuZCk7CnZvaWQgQVk4OTEwX3NoX3N0b3Aodm9pZCk7CnZvaWQgQVk4OTEwX3No X3Jlc2V0KHZvaWQpOwoKCgoKCgpleHRlcm4gaW50IGF5ODkxMF9pbmRleF95bTsKCnZvaWQgQVk4 OTEwX3NoX3N0b3BfeW0odm9pZCk7CmludCBBWTg5MTBfc2hfc3RhcnRfeW0oY29uc3Qgc3RydWN0 IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKIyAyNyAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNy Yy9zb3VuZC8yMjAzaW50Zi5oIiAxCiMgMTMgInNyYy9zb3VuZC8yMjAzaW50Zi5oIgpkYXRhOF90 IFlNMjIwM19zdGF0dXNfcG9ydF8wX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQpOwpkYXRhOF90IFlNMjIwM19zdGF0dXNfcG9ydF8xX3IoX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IFlNMjIwM19zdGF0dXNfcG9ydF8y X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IFlN MjIwM19zdGF0dXNfcG9ydF8zX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQpOwpkYXRhOF90IFlNMjIwM19zdGF0dXNfcG9ydF80X3IoX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwoKZGF0YThfdCBZTTIyMDNfcmVhZF9wb3J0XzBfcihf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU0yMjAz X3JlYWRfcG9ydF8xX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQp OwpkYXRhOF90IFlNMjIwM19yZWFkX3BvcnRfMl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBZTTIyMDNfcmVhZF9wb3J0XzNfcihfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU0yMjAzX3JlYWRfcG9y dF80X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwoKdm9pZCBZ TTIyMDNfY29udHJvbF9wb3J0XzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQg WU0yMjAzX2NvbnRyb2xfcG9ydF8xX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lk IFlNMjIwM19jb250cm9sX3BvcnRfMl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9p ZCBZTTIyMDNfY29udHJvbF9wb3J0XzNfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZv aWQgWU0yMjAzX2NvbnRyb2xfcG9ydF80X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwoK dm9pZCBZTTIyMDNfd3JpdGVfcG9ydF8wX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2 b2lkIFlNMjIwM193cml0ZV9wb3J0XzFfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZv aWQgWU0yMjAzX3dyaXRlX3BvcnRfMl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9p ZCBZTTIyMDNfd3JpdGVfcG9ydF8zX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lk IFlNMjIwM193cml0ZV9wb3J0XzRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CgppbnQg WU0yMjAzX3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQg WU0yMjAzX3NoX3N0b3Aodm9pZCk7CnZvaWQgWU0yMjAzX3NoX3Jlc2V0KHZvaWQpOwoKdm9pZCBZ TTIyMDNVcGRhdGVSZXF1ZXN0KGludCBjaGlwKTsKIyAzMCAic3JjL3NuZGludHJmLmgiIDIKCgoj IDEgInNyYy9zb3VuZC8yNjA4aW50Zi5oIiAxCgoKCiMgMSAic3JjL3NvdW5kL2ZtLmgiIDEKIyAx MTQgInNyYy9zb3VuZC9mbS5oIgp0eXBlZGVmIElOVDE2IEZNU0FNUExFOwp0eXBlZGVmIHVuc2ln bmVkIGxvbmcgRk1TQU1QTEVfTUlYOwoKCgoKCgp0eXBlZGVmIHZvaWQgKCpGTV9USU1FUkhBTkRM RVIpKGludCBuLGludCBjLGludCBjbnQsZG91YmxlIHN0ZXBUaW1lKTsKdHlwZWRlZiB2b2lkICgq Rk1fSVJRSEFORExFUikoaW50IG4saW50IGlycSk7CiMgMTQ3ICJzcmMvc291bmQvZm0uaCIKaW50 IFlNMjIwM0luaXQoaW50IG51bSwgaW50IGJhc2VjbG9jaywgaW50IHJhdGUsCiAgICAgICAgICAg ICAgIEZNX1RJTUVSSEFORExFUiBUaW1lckhhbmRsZXIsRk1fSVJRSEFORExFUiBJUlFIYW5kbGVy KTsKCgoKCgp2b2lkIFlNMjIwM1NodXRkb3duKHZvaWQpOwoKCgoKdm9pZCBZTTIyMDNSZXNldENo aXAoaW50IG51bSk7CgoKCgp2b2lkIFlNMjIwM1VwZGF0ZU9uZShpbnQgbnVtLCBJTlQxNiAqYnVm ZmVyLCBpbnQgbGVuZ3RoKTsKCgoKCgppbnQgWU0yMjAzV3JpdGUoaW50IG4saW50IGEsdW5zaWdu ZWQgY2hhciB2KTsKCgoKCnVuc2lnbmVkIGNoYXIgWU0yMjAzUmVhZChpbnQgbixpbnQgYSk7CgoK CgppbnQgWU0yMjAzVGltZXJPdmVyKGludCBuLCBpbnQgYyk7CgoKCgoKaW50IFlNMjYwOEluaXQo aW50IG51bSwgaW50IGJhc2VjbG9jaywgaW50IHJhdGUsCiAgICAgICAgICAgICAgIHZvaWQgKipw Y21yb21hLGludCAqcGNtc2l6ZWEsc2hvcnQgKnJoeXRobXJvbSxpbnQgKnJoeXRobXBvcywKICAg ICAgICAgICAgICAgRk1fVElNRVJIQU5ETEVSIFRpbWVySGFuZGxlcixGTV9JUlFIQU5ETEVSIElS UUhhbmRsZXIpOwp2b2lkIFlNMjYwOFNodXRkb3duKHZvaWQpOwp2b2lkIFlNMjYwOFJlc2V0Q2hp cChpbnQgbnVtKTsKdm9pZCBZTTI2MDhVcGRhdGVPbmUoaW50IG51bSwgSU5UMTYgKipidWZmZXIs IGludCBsZW5ndGgpOwoKaW50IFlNMjYwOFdyaXRlKGludCBuLCBpbnQgYSx1bnNpZ25lZCBjaGFy IHYpOwp1bnNpZ25lZCBjaGFyIFlNMjYwOFJlYWQoaW50IG4saW50IGEpOwppbnQgWU0yNjA4VGlt ZXJPdmVyKGludCBuLCBpbnQgYyApOwoKCgoKaW50IFlNMjYxMEluaXQoaW50IG51bSwgaW50IGJh c2VjbG9jaywgaW50IHJhdGUsCiAgICAgICAgICAgICAgIHZvaWQgKipwY21yb21hLGludCAqcGNt YXNpemUsdm9pZCAqKnBjbXJvbWIsaW50ICpwY21ic2l6ZSwKICAgICAgICAgICAgICAgRk1fVElN RVJIQU5ETEVSIFRpbWVySGFuZGxlcixGTV9JUlFIQU5ETEVSIElSUUhhbmRsZXIpOwp2b2lkIFlN MjYxMFNodXRkb3duKHZvaWQpOwp2b2lkIFlNMjYxMFJlc2V0Q2hpcChpbnQgbnVtKTsKdm9pZCBZ TTI2MTBVcGRhdGVPbmUoaW50IG51bSwgSU5UMTYgKipidWZmZXIsIGludCBsZW5ndGgpOwoKdm9p ZCBZTTI2MTBCVXBkYXRlT25lKGludCBudW0sIElOVDE2ICoqYnVmZmVyLCBpbnQgbGVuZ3RoKTsK CgppbnQgWU0yNjEwV3JpdGUoaW50IG4sIGludCBhLHVuc2lnbmVkIGNoYXIgdik7CnVuc2lnbmVk IGNoYXIgWU0yNjEwUmVhZChpbnQgbixpbnQgYSk7CmludCBZTTI2MTBUaW1lck92ZXIoaW50IG4s IGludCBjICk7CgoKCgppbnQgWU0yNjEySW5pdChpbnQgbnVtLCBpbnQgYmFzZWNsb2NrLCBpbnQg cmF0ZSwKICAgICAgICAgICAgICAgRk1fVElNRVJIQU5ETEVSIFRpbWVySGFuZGxlcixGTV9JUlFI QU5ETEVSIElSUUhhbmRsZXIpOwp2b2lkIFlNMjYxMlNodXRkb3duKHZvaWQpOwp2b2lkIFlNMjYx MlJlc2V0Q2hpcChpbnQgbnVtKTsKdm9pZCBZTTI2MTJVcGRhdGVPbmUoaW50IG51bSwgSU5UMTYg KipidWZmZXIsIGludCBsZW5ndGgpOwppbnQgWU0yNjEyV3JpdGUoaW50IG4sIGludCBhLHVuc2ln bmVkIGNoYXIgdik7CnVuc2lnbmVkIGNoYXIgWU0yNjEyUmVhZChpbnQgbixpbnQgYSk7CmludCBZ TTI2MTJUaW1lck92ZXIoaW50IG4sIGludCBjICk7CiMgNSAic3JjL3NvdW5kLzI2MDhpbnRmLmgi IDIKCiAgdm9pZCBZTTI2MDhVcGRhdGVSZXF1ZXN0KGludCBjaGlwKTsKIyAxNiAic3JjL3NvdW5k LzI2MDhpbnRmLmgiCnN0cnVjdCBZTTI2MDhpbnRlcmZhY2V7CiAgICAgICAgaW50IG51bTsKICAg ICAgICBpbnQgYmFzZWNsb2NrOwogICAgICAgIGludCB2b2x1bWVTU0dbNV07CiAgICAgICAgbWVt X3JlYWRfaGFuZGxlciBwb3J0QXJlYWRbNV07CiAgICAgICAgbWVtX3JlYWRfaGFuZGxlciBwb3J0 QnJlYWRbNV07CiAgICAgICAgbWVtX3dyaXRlX2hhbmRsZXIgcG9ydEF3cml0ZVs1XTsKICAgICAg ICBtZW1fd3JpdGVfaGFuZGxlciBwb3J0QndyaXRlWzVdOwogICAgICAgIHZvaWQgKCAqaGFuZGxl cls1XSApKCBpbnQgaXJxICk7CiAgICAgICAgaW50IHBjbXJvbVsoMildOwogICAgICAgIGludCB2 b2x1bWVGTVsoMildOwp9OwoKCgoKaW50IFlNMjYwOF9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFj aGluZVNvdW5kICptc291bmQpOwoKCgoKdm9pZCBZTTI2MDhfc2hfc3RvcCh2b2lkKTsKCnZvaWQg WU0yNjA4X3NoX3Jlc2V0KHZvaWQpOwoKCgoKZGF0YThfdCBZTTI2MDhfc3RhdHVzX3BvcnRfMF9B X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IFlN MjYwOF9zdGF0dXNfcG9ydF8wX0JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCk7CmRhdGE4X3QgWU0yNjA4X3JlYWRfcG9ydF8wX3IoX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp2b2lkIFlNMjYwOF9jb250cm9sX3BvcnRfMF9BX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9jb250cm9sX3BvcnRfMF9C X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9kYXRhX3BvcnRfMF9B X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9kYXRhX3BvcnRfMF9C X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKCgoKZGF0YThfdCBZTTI2MDhfc3RhdHVz X3BvcnRfMV9BX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpk YXRhOF90IFlNMjYwOF9zdGF0dXNfcG9ydF8xX0JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU0yNjA4X3JlYWRfcG9ydF8xX3IoX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp2b2lkIFlNMjYwOF9jb250cm9sX3Bv cnRfMV9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9jb250cm9s X3BvcnRfMV9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9kYXRh X3BvcnRfMV9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYwOF9kYXRh X3BvcnRfMV9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwojIDMzICJzcmMvc25kaW50 cmYuaCIgMgoKCiMgMSAic3JjL3NvdW5kLzI2MTJpbnRmLmgiIDEKCgoKCgogIHZvaWQgWU0yNjEy VXBkYXRlUmVxdWVzdChpbnQgY2hpcCk7CgoKCgoKCgppbnQgWU0yNjEyX3NoX3N0YXJ0KGNvbnN0 IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgWU0yNjEyX3NoX3N0b3Aodm9pZCk7 CnZvaWQgWU0yNjEyX3NoX3Jlc2V0KHZvaWQpOwoKCgoKZGF0YThfdCBZTTI2MTJfc3RhdHVzX3Bv cnRfMF9BX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRh OF90IFlNMjYxMl9zdGF0dXNfcG9ydF8wX0JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU0yNjEyX3JlYWRfcG9ydF8wX3IoX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp2b2lkIFlNMjYxMl9jb250cm9sX3BvcnRf MF9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMl9jb250cm9sX3Bv cnRfMF9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMl9kYXRhX3Bv cnRfMF9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMl9kYXRhX3Bv cnRfMF9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKCgoKZGF0YThfdCBZTTI2MTJf c3RhdHVzX3BvcnRfMV9BX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQpOwpkYXRhOF90IFlNMjYxMl9zdGF0dXNfcG9ydF8xX0JfcihfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU0yNjEyX3JlYWRfcG9ydF8xX3IoX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp2b2lkIFlNMjYxMl9jb250 cm9sX3BvcnRfMV9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMl9j b250cm9sX3BvcnRfMV9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYx Ml9kYXRhX3BvcnRfMV9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYx Ml9kYXRhX3BvcnRfMV9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwojIDM2ICJzcmMv c25kaW50cmYuaCIgMgoKCiMgMSAic3JjL3NvdW5kLzIxNTFpbnRmLmgiIDEKIyAxMiAic3JjL3Nv dW5kLzIxNTFpbnRmLmgiCnN0cnVjdCBZTTIxNTFpbnRlcmZhY2UKewogICAgICAgIGludCBudW07 CiAgICAgICAgaW50IGJhc2VjbG9jazsKICAgICAgICBpbnQgdm9sdW1lWzJdOwogICAgICAgIHZv aWQgKCppcnFoYW5kbGVyWzJdKShpbnQgaXJxKTsKICAgICAgICBtZW1fd3JpdGVfaGFuZGxlciBw b3J0d3JpdGVoYW5kbGVyWzJdOwp9OwoKZGF0YThfdCBZTTIxNTFfc3RhdHVzX3BvcnRfMF9yKF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBZTTIxNTFf c3RhdHVzX3BvcnRfMV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 KTsKZGF0YThfdCBZTTIxNTFfc3RhdHVzX3BvcnRfMl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0KTsKCnZvaWQgWU0yMTUxX3JlZ2lzdGVyX3BvcnRfMF93KF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBZTTIxNTFfcmVnaXN0ZXJfcG9ydF8xX3coX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjE1MV9yZWdpc3Rlcl9wb3J0XzJfdyhf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7Cgp2b2lkIFlNMjE1MV9kYXRhX3BvcnRfMF93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBZTTIxNTFfZGF0YV9wb3J0XzFfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgWU0yMTUxX2RhdGFfcG9ydF8yX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKZGF0YTE2X3QgWU0yMTUxX3N0YXR1c19wb3J0XzBfbHNi X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IFlNMjE1MV9zdGF0 dXNfcG9ydF8xX2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZf dCBZTTIxNTFfc3RhdHVzX3BvcnRfMl9sc2JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9t YXNrKTsKCnZvaWQgWU0yMTUxX3JlZ2lzdGVyX3BvcnRfMF9sc2JfdyhfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFz ayk7CnZvaWQgWU0yMTUxX3JlZ2lzdGVyX3BvcnRfMV9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEx Nl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7 CnZvaWQgWU0yMTUxX3JlZ2lzdGVyX3BvcnRfMl9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7Cgp2 b2lkIFlNMjE1MV9kYXRhX3BvcnRfMF9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgWU0y MTUxX2RhdGFfcG9ydF8xX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qg b2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBZTTIxNTFfZGF0 YV9wb3J0XzJfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwoKaW50IFlNMjE1MV9zaF9zdGFydChj b25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQpOwp2b2lkIFlNMjE1MV9zaF9zdG9wKHZv aWQpOwp2b2lkIFlNMjE1MV9zaF9yZXNldCh2b2lkKTsKCnZvaWQgWU0yMTUxVXBkYXRlUmVxdWVz dChpbnQgY2hpcCk7CiMgMzkgInNyYy9zbmRpbnRyZi5oIiAyCgoKCgoKIyAxICJzcmMvc291bmQv MjYxMGludGYuaCIgMQoKCgoKCiAgdm9pZCBZTTI2MTBVcGRhdGVSZXF1ZXN0KGludCBjaGlwKTsK IyAxNiAic3JjL3NvdW5kLzI2MTBpbnRmLmgiCnN0cnVjdCBZTTI2MTBpbnRlcmZhY2UKewogICAg ICAgIGludCBudW07CiAgICAgICAgaW50IGJhc2VjbG9jazsKICAgICAgICBpbnQgdm9sdW1lU1NH WzVdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG9ydEFyZWFkWzVdOwogICAgICAgIG1lbV9y ZWFkX2hhbmRsZXIgcG9ydEJyZWFkWzVdOwogICAgICAgIG1lbV93cml0ZV9oYW5kbGVyIHBvcnRB d3JpdGVbNV07CiAgICAgICAgbWVtX3dyaXRlX2hhbmRsZXIgcG9ydEJ3cml0ZVs1XTsKICAgICAg ICB2b2lkICggKmhhbmRsZXJbNV0gKSggaW50IGlycSApOwogICAgICAgIGludCBwY21yb21iWygy KV07CiAgICAgICAgaW50IHBjbXJvbWFbKDIpXTsKICAgICAgICBpbnQgdm9sdW1lRk1bKDIpXTsK fTsKCgoKCmludCBZTTI2MTBfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNv dW5kKTsKaW50IFlNMjYxMEJfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNv dW5kKTsKCgoKCnZvaWQgWU0yNjEwX3NoX3N0b3Aodm9pZCk7Cgp2b2lkIFlNMjYxMF9zaF9yZXNl dCh2b2lkKTsKCgoKCmRhdGE4X3QgWU0yNjEwX3N0YXR1c19wb3J0XzBfQV9yKF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YTE2X3QgWU0yNjEwX3N0YXR1c19w b3J0XzBfQV9sc2JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YThfdCBZ TTI2MTBfc3RhdHVzX3BvcnRfMF9CX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNf dCBvZmZzZXQpOwpkYXRhMTZfdCBZTTI2MTBfc3RhdHVzX3BvcnRfMF9CX2xzYl9yKF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhOF90IFlNMjYxMF9yZWFkX3BvcnRfMF9yKF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YTE2X3QgWU0yNjEw X3JlYWRfcG9ydF8wX2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lk IFlNMjYxMF9jb250cm9sX3BvcnRfMF9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2 b2lkIFlNMjYxMF9jb250cm9sX3BvcnRfMF9BX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3Qg ZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9p ZCBZTTI2MTBfY29udHJvbF9wb3J0XzBfQl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBv ZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsK dm9pZCBZTTI2MTBfY29udHJvbF9wb3J0XzBfQl9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZv aWQgWU0yNjEwX2RhdGFfcG9ydF8wX0FfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zm c190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZv aWQgWU0yNjEwX2RhdGFfcG9ydF8wX0FfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRh LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIFlN MjYxMF9kYXRhX3BvcnRfMF9CX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlN MjYxMF9kYXRhX3BvcnRfMF9CX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKCgoKCmRhdGE4X3Qg WU0yNjEwX3N0YXR1c19wb3J0XzFfQV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0KTsKZGF0YTE2X3QgWU0yNjEwX3N0YXR1c19wb3J0XzFfQV9sc2JfcihfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YThfdCBZTTI2MTBfc3RhdHVzX3BvcnRfMV9C X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhMTZfdCBZ TTI2MTBfc3RhdHVzX3BvcnRfMV9CX2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBv ZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21h c2spOwpkYXRhOF90IFlNMjYxMF9yZWFkX3BvcnRfMV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YTE2X3QgWU0yNjEwX3JlYWRfcG9ydF8xX2xzYl9yKF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIFlNMjYxMF9jb250cm9sX3BvcnRf MV9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMF9jb250cm9sX3Bv cnRfMV9BX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBZTTI2MTBfY29udHJvbF9wb3J0 XzFfQl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBZTTI2MTBfY29udHJvbF9w b3J0XzFfQl9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgWU0yNjEwX2RhdGFfcG9ydF8x X0FfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgWU0yNjEwX2RhdGFfcG9ydF8x X0FfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIFlNMjYxMF9kYXRhX3BvcnRfMV9CX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjYxMF9kYXRhX3BvcnRfMV9CX2xz Yl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIGRhdGExNl90IG1lbV9tYXNrKTsKIyA0NSAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNy Yy9zb3VuZC8zODEyaW50Zi5oIiAxCgoKCgoKCgpzdHJ1Y3QgWU0zODEyaW50ZXJmYWNlCnsKICAg ICAgICBpbnQgbnVtOwogICAgICAgIGludCBiYXNlY2xvY2s7CiAgICAgICAgaW50IG1peGluZ19s ZXZlbFsyXTsKICAgICAgICB2b2lkICgqaGFuZGxlclsyXSkoaW50IGxpbmVzdGF0ZSk7Cn07Cgpz dHJ1Y3QgWTg5NTBpbnRlcmZhY2UKewogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGJhc2Vj bG9jazsKICAgICAgICBpbnQgbWl4aW5nX2xldmVsWzJdOwogICAgICAgIHZvaWQgKCpoYW5kbGVy WzJdKShpbnQgbGluZXN0YXRlKTsKCiAgICAgICAgaW50IHJvbV9yZWdpb25bMl07CiAgICAgICAg bWVtX3JlYWRfaGFuZGxlciBrZXlib2FyZHJlYWRbMl07CiAgICAgICAgbWVtX3dyaXRlX2hhbmRs ZXIga2V5Ym9hcmR3cml0ZVsyXTsKICAgICAgICBtZW1fcmVhZF9oYW5kbGVyIHBvcnRyZWFkWzJd OwogICAgICAgIG1lbV93cml0ZV9oYW5kbGVyIHBvcnR3cml0ZVsyXTsKfTsKCgoKCmRhdGE4X3Qg WU0zODEyX3N0YXR1c19wb3J0XzBfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCk7CnZvaWQgWU0zODEyX2NvbnRyb2xfcG9ydF8wX3coX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh OF90IGRhdGEpOwp2b2lkIFlNMzgxMl93cml0ZV9wb3J0XzBfdyhfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4 X3QgZGF0YSk7CmRhdGE4X3QgWU0zODEyX3N0YXR1c19wb3J0XzFfcihfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CnZvaWQgWU0zODEyX2NvbnRyb2xfcG9ydF8xX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMzgxMl93cml0ZV9wb3J0XzFfdyhf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CgppbnQgWU0zODEyX3NoX3N0YXJ0KGNvbnN0IHN0 cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgWU0zODEyX3NoX3N0b3Aodm9pZCk7CnZv aWQgWU0zODEyX3NoX3Jlc2V0KHZvaWQpOwojIDUxICJzcmMvc291bmQvMzgxMmludGYuaCIKaW50 IFlNMzUyNl9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQpOwoKCgoK CgpkYXRhOF90IFk4OTUwX3JlYWRfcG9ydF8wX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IG9mZnNfdCBvZmZzZXQpOwoKCgpkYXRhOF90IFk4OTUwX3JlYWRfcG9ydF8xX3IoX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwoKaW50IFk4OTUwX3NoX3N0YXJ0KGNv bnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CiMgNDggInNyYy9zbmRpbnRyZi5oIiAy CgoKIyAxICJzcmMvc291bmQvMjQxM2ludGYuaCIgMQoKCgoKCnN0cnVjdCBZTTI0MTNpbnRlcmZh Y2UKewogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGJhc2VjbG9jazsKICAgICAgICBpbnQg bWl4aW5nX2xldmVsWyg0KV07Cn07Cgp2b2lkIFlNMjQxM19yZWdpc3Rlcl9wb3J0XzBfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgWU0yNDEzX3JlZ2lzdGVyX3BvcnRfMV93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBZTTI0MTNfcmVnaXN0ZXJfcG9ydF8yX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjQxM19yZWdpc3Rlcl9wb3J0XzNf dyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgWU0yNDEzX2RhdGFfcG9ydF8wX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlNMjQxM19kYXRhX3BvcnRfMV93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBZTTI0MTNfZGF0YV9wb3J0XzJfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgWU0yNDEzX2RhdGFfcG9ydF8zX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKdm9pZCBZTTI0MTNfcmVnaXN0ZXJfcG9ydF8wX2xzYl93 KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBZTTI0MTNfcmVnaXN0ZXJfcG9ydF8xX2xzYl93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKdm9pZCBZTTI0MTNfcmVnaXN0ZXJfcG9ydF8yX2xzYl93KF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGEx Nl90IG1lbV9tYXNrKTsKdm9pZCBZTTI0MTNfcmVnaXN0ZXJfcG9ydF8zX2xzYl93KF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IG1lbV9tYXNrKTsKdm9pZCBZTTI0MTNfZGF0YV9wb3J0XzBfbHNiX3coX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBk YXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21h c2spOwp2b2lkIFlNMjQxM19kYXRhX3BvcnRfMV9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZv aWQgWU0yNDEzX2RhdGFfcG9ydF8yX2xzYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBv ZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBZTTI0 MTNfZGF0YV9wb3J0XzNfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwoKaW50IFlNMjQxM19zaF9z dGFydCAoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBZTTI0MTNfc2hf c3RvcCAodm9pZCk7CnZvaWQgWU0yNDEzX3NoX3Jlc2V0ICh2b2lkKTsKIyA1MSAic3JjL3NuZGlu dHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC95bXoyODBiLmgiIDEKIyAxNyAic3JjL3NvdW5kL3lt ejI4MGIuaCIKc3RydWN0IFlNWjI4MEJpbnRlcmZhY2UKewogICAgICAgIGludCBudW07CiAgICAg ICAgaW50IGJhc2VjbG9ja1syXTsKICAgICAgICBpbnQgcmVnaW9uWzJdOwogICAgICAgIGludCBt aXhpbmdfbGV2ZWxbMl07CiAgICAgICAgdm9pZCAoKmlycV9jYWxsYmFja1syXSkoaW50IHN0YXRl KTsKfTsKCmludCBZTVoyODBCX3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1z b3VuZCk7CnZvaWQgWU1aMjgwQl9zaF9zdG9wKHZvaWQpOwp2b2lkIFlNWjI4MEJfc2V0X3NhbXBs ZV9iYXNlKGludCB3aGljaCwgdm9pZCAqYmFzZSk7CgpkYXRhOF90IFlNWjI4MEJfc3RhdHVzXzBf cihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgWU1a MjgwQl9zdGF0dXNfMV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0 KTsKdm9pZCBZTVoyODBCX3JlZ2lzdGVyXzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7 CnZvaWQgWU1aMjgwQl9yZWdpc3Rlcl8xX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2 b2lkIFlNWjI4MEJfZGF0YV8wX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBv ZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFlN WjI4MEJfZGF0YV8xX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQs IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwojIDU0ICJzcmMvc25k aW50cmYuaCIgMgoKCiMgMSAic3JjL3NvdW5kL3NuNzY0NzcuaCIgMQojIDQwICJzcmMvc291bmQv c243NjQ3Ny5oIgpzdHJ1Y3QgU043NjQ3N2ludGVyZmFjZSB7CiAgICAgICAgaW50IG51bTsKICAg ICAgICBpbnQgbWl4aW5nX2xldmVsWzRdOwogICAgICAgIGRvdWJsZSBub2lzZV9yZXNbNF07CiAg ICAgICAgZG91YmxlIGZpbHRlcl9yZXNbNF07CiAgICAgICAgZG91YmxlIGZpbHRlcl9jYXBbNF07 CiAgICAgICAgZG91YmxlIGRlY2F5X3Jlc1s0XTsKICAgICAgICBkb3VibGUgYXR0YWNrX2RlY2F5 X2NhcFs0XTsKICAgICAgICBkb3VibGUgYXR0YWNrX3Jlc1s0XTsKICAgICAgICBkb3VibGUgYW1w bGl0dWRlX3Jlc1s0XTsKICAgICAgICBkb3VibGUgZmVlZGJhY2tfcmVzWzRdOwogICAgICAgIGRv dWJsZSB2Y29fdm9sdGFnZVs0XTsKICAgIGRvdWJsZSB2Y29fY2FwWzRdOwogICAgZG91YmxlIHZj b19yZXNbNF07CiAgICBkb3VibGUgcGl0Y2hfdm9sdGFnZVs0XTsKICAgIGRvdWJsZSBzbGZfcmVz WzRdOwogICAgZG91YmxlIHNsZl9jYXBbNF07CiAgICBkb3VibGUgb25lc2hvdF9jYXBbNF07CiAg ICBkb3VibGUgb25lc2hvdF9yZXNbNF07Cn07CgoKZXh0ZXJuIHZvaWQgU043NjQ3N19ub2lzZV9j bG9ja193KGludCBjaGlwLCBpbnQgZGF0YSk7CgoKZXh0ZXJuIHZvaWQgU043NjQ3N19lbmFibGVf dyhpbnQgY2hpcCwgaW50IGRhdGEpOwoKCmV4dGVybiB2b2lkIFNONzY0NzdfbWl4ZXJfdyhpbnQg Y2hpcCwgaW50IGRhdGEpOwoKCmV4dGVybiB2b2lkIFNONzY0NzdfbWl4ZXJfYV93KGludCBjaGlw LCBpbnQgZGF0YSk7CmV4dGVybiB2b2lkIFNONzY0NzdfbWl4ZXJfYl93KGludCBjaGlwLCBpbnQg ZGF0YSk7CmV4dGVybiB2b2lkIFNONzY0NzdfbWl4ZXJfY193KGludCBjaGlwLCBpbnQgZGF0YSk7 CgoKZXh0ZXJuIHZvaWQgU043NjQ3N19lbnZlbG9wZV93KGludCBjaGlwLCBpbnQgZGF0YSk7CgoK ZXh0ZXJuIHZvaWQgU043NjQ3N19lbnZlbG9wZV8xX3coaW50IGNoaXAsIGludCBkYXRhKTsKZXh0 ZXJuIHZvaWQgU043NjQ3N19lbnZlbG9wZV8yX3coaW50IGNoaXAsIGludCBkYXRhKTsKCgpleHRl cm4gdm9pZCBTTjc2NDc3X3Zjb193KGludCBjaGlwLCBpbnQgZGF0YSk7Cgp2b2lkIFNONzY0Nzdf c2V0X25vaXNlX3JlcyhpbnQgY2hpcCwgZG91YmxlIHJlcyk7CnZvaWQgU043NjQ3N19zZXRfZmls dGVyX3JlcyhpbnQgY2hpcCwgZG91YmxlIHJlcyk7CnZvaWQgU043NjQ3N19zZXRfZmlsdGVyX2Nh cChpbnQgY2hpcCwgZG91YmxlIGNhcCk7CnZvaWQgU043NjQ3N19zZXRfZGVjYXlfcmVzKGludCBj aGlwLCBkb3VibGUgcmVzKTsKdm9pZCBTTjc2NDc3X3NldF9hdHRhY2tfZGVjYXlfY2FwKGludCBj aGlwLCBkb3VibGUgY2FwKTsKdm9pZCBTTjc2NDc3X3NldF9hdHRhY2tfcmVzKGludCBjaGlwLCBk b3VibGUgcmVzKTsKdm9pZCBTTjc2NDc3X3NldF9hbXBsaXR1ZGVfcmVzKGludCBjaGlwLCBkb3Vi bGUgcmVzKTsKdm9pZCBTTjc2NDc3X3NldF9mZWVkYmFja19yZXMoaW50IGNoaXAsIGRvdWJsZSBy ZXMpOwp2b2lkIFNONzY0Nzdfc2V0X3NsZl9yZXMoaW50IGNoaXAsIGRvdWJsZSByZXMpOwp2b2lk IFNONzY0Nzdfc2V0X3NsZl9jYXAoaW50IGNoaXAsIGRvdWJsZSBjYXApOwp2b2lkIFNONzY0Nzdf c2V0X29uZXNob3RfcmVzKGludCBjaGlwLCBkb3VibGUgcmVzKTsKdm9pZCBTTjc2NDc3X3NldF9v bmVzaG90X2NhcChpbnQgY2hpcCwgZG91YmxlIGNhcCk7CnZvaWQgU043NjQ3N19zZXRfdmNvX3Jl cyhpbnQgY2hpcCwgZG91YmxlIHJlcyk7CnZvaWQgU043NjQ3N19zZXRfdmNvX2NhcChpbnQgY2hp cCwgZG91YmxlIGNhcCk7CnZvaWQgU043NjQ3N19zZXRfcGl0Y2hfdm9sdGFnZShpbnQgY2hpcCwg ZG91YmxlIHZvbHRhZ2UpOwp2b2lkIFNONzY0Nzdfc2V0X3Zjb192b2x0YWdlKGludCBjaGlwLCBk b3VibGUgdm9sdGFnZSk7CgppbnQgU043NjQ3N19zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGlu ZVNvdW5kICptc291bmQpOwp2b2lkIFNONzY0Nzdfc2hfc3RvcCh2b2lkKTsKdm9pZCBTTjc2NDc3 X3NoX3VwZGF0ZSh2b2lkKTsKIyA1NyAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3Vu ZC9zbjc2NDk2LmgiIDEKCgoKCgpzdHJ1Y3QgU043NjQ5NmludGVyZmFjZQp7CiAgICAgICAgaW50 IG51bTsKICAgICAgICBpbnQgYmFzZWNsb2NrWzRdOwogICAgICAgIGludCB2b2x1bWVbNF07Cn07 CgppbnQgU043NjQ5Nl9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQp Owp2b2lkIFNONzY0OTZfMF93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBTTjc2 NDk2XzFfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgU043NjQ5Nl8yX3coX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIFNONzY0OTZfM193KF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YThfdCBkYXRhKTsKIyA2MCAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9w b2tleS5oIiAxCiMgODEgInNyYy9zb3VuZC9wb2tleS5oIgpzdHJ1Y3QgUE9LRVlpbnRlcmZhY2Ug ewogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGJhc2VjbG9jazsKICAgICAgICBpbnQgbWl4 aW5nX2xldmVsWzRdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG90MF9yWzRdOwogICAgICAg IG1lbV9yZWFkX2hhbmRsZXIgcG90MV9yWzRdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG90 Ml9yWzRdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG90M19yWzRdOwogICAgICAgIG1lbV9y ZWFkX2hhbmRsZXIgcG90NF9yWzRdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG90NV9yWzRd OwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgcG90Nl9yWzRdOwogICAgICAgIG1lbV9yZWFkX2hh bmRsZXIgcG90N19yWzRdOwogICAgICAgIG1lbV9yZWFkX2hhbmRsZXIgYWxscG90X3JbNF07CiAg ICAgICAgbWVtX3JlYWRfaGFuZGxlciBzZXJpbl9yWzRdOwogICAgICAgIG1lbV93cml0ZV9oYW5k bGVyIHNlcm91dF93WzRdOwogICAgICAgIHZvaWQgKCppbnRlcnJ1cHRfY2JbNF0pKGludCBtYXNr KTsKfTsKCgppbnQgcG9rZXlfc2hfc3RhcnQgKGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1z b3VuZCk7CnZvaWQgcG9rZXlfc2hfc3RvcCAodm9pZCk7CgpkYXRhOF90IHBva2V5MV9yKF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBwb2tleTJfcihf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgcG9rZXkz X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IHBv a2V5NF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThf dCBxdWFkX3Bva2V5X3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQp OwoKdm9pZCBwb2tleTFfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNl dCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgcG9rZXky X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHBva2V5M193KF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgZGF0YThfdCBkYXRhKTsKdm9pZCBwb2tleTRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0 YSk7CnZvaWQgcXVhZF9wb2tleV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qg b2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKCnZvaWQg cG9rZXkxX3NlcmluX3JlYWR5IChpbnQgYWZ0ZXIpOwp2b2lkIHBva2V5Ml9zZXJpbl9yZWFkeSAo aW50IGFmdGVyKTsKdm9pZCBwb2tleTNfc2VyaW5fcmVhZHkgKGludCBhZnRlcik7CnZvaWQgcG9r ZXk0X3NlcmluX3JlYWR5IChpbnQgYWZ0ZXIpOwoKdm9pZCBwb2tleTFfYnJlYWtfdyAoaW50IHNo aWZ0KTsKdm9pZCBwb2tleTJfYnJlYWtfdyAoaW50IHNoaWZ0KTsKdm9pZCBwb2tleTNfYnJlYWtf dyAoaW50IHNoaWZ0KTsKdm9pZCBwb2tleTRfYnJlYWtfdyAoaW50IHNoaWZ0KTsKCnZvaWQgcG9r ZXkxX2tiY29kZV93IChpbnQga2Jjb2RlLCBpbnQgbWFrZSk7CnZvaWQgcG9rZXkyX2tiY29kZV93 IChpbnQga2Jjb2RlLCBpbnQgbWFrZSk7CnZvaWQgcG9rZXkzX2tiY29kZV93IChpbnQga2Jjb2Rl LCBpbnQgbWFrZSk7CnZvaWQgcG9rZXk0X2tiY29kZV93IChpbnQga2Jjb2RlLCBpbnQgbWFrZSk7 CiMgNjMgInNyYy9zbmRpbnRyZi5oIiAyCgoKCiMgMSAic3JjL3NvdW5kL25lc19hcHUuaCIgMQoj IDM3ICJzcmMvc291bmQvbmVzX2FwdS5oIgpzdHJ1Y3QgTkVTaW50ZXJmYWNlCnsKICAgaW50IG51 bTsKICAgaW50IHJlZ2lvblsyXTsKICAgaW50IHZvbHVtZVsyXTsKfTsKCmRhdGE4X3QgTkVTUFNH XzBfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3Qg TkVTUFNHXzFfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CnZv aWQgTkVTUFNHXzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgTkVTUFNHXzFf dyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CgpleHRlcm4gaW50IE5FU1BTR19zaF9zdGFy dChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICopOwpleHRlcm4gdm9pZCBORVNQU0dfc2hfc3Rv cCh2b2lkKTsKZXh0ZXJuIHZvaWQgTkVTUFNHX3NoX3VwZGF0ZSh2b2lkKTsKIyA2NyAic3JjL3Nu ZGludHJmLmgiIDIKCgoKCgojIDEgInNyYy9zb3VuZC9hc3Ryb2NkZS5oIiAxCgoKCgoKCnN0cnVj dCBhc3Ryb2NhZGVfaW50ZXJmYWNlCnsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCBiYXNl Y2xvY2s7CiAgICAgICAgaW50IHZvbHVtZVsyXTsKfTsKCmludCBhc3Ryb2NhZGVfc2hfc3RhcnQo Y29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBhc3Ryb2NhZGVfc2hfc3Rv cCh2b2lkKTsKdm9pZCBhc3Ryb2NhZGVfc2hfdXBkYXRlKHZvaWQpOwoKdm9pZCBhc3Ryb2NhZGVf c291bmQxX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIGFzdHJvY2FkZV9zb3Vu ZDJfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CiMgNzMgInNyYy9zbmRpbnRyZi5oIiAy CgoKIyAxICJzcmMvc291bmQvbmFtY28uaCIgMQoKCgpzdHJ1Y3QgbmFtY29faW50ZXJmYWNlCnsK ICAgICAgICBpbnQgc2FtcGxlcmF0ZTsKICAgICAgICBpbnQgdm9pY2VzOwogICAgICAgIGludCB2 b2x1bWU7CiAgICAgICAgaW50IHJlZ2lvbjsKICAgICAgICBpbnQgc3RlcmVvOwp9OwoKaW50IG5h bWNvX3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgbmFt Y29fc2hfc3RvcCh2b2lkKTsKCnZvaWQgcGVuZ29fc291bmRfZW5hYmxlX3coX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhOF90IGRhdGEpOwp2b2lkIHBlbmdvX3NvdW5kX3coX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90 IGRhdGEpOwoKdm9pZCBwb2xlcG9zX3NvdW5kX2VuYWJsZV93KF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThf dCBkYXRhKTsKdm9pZCBwb2xlcG9zX3NvdW5kX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEp OwoKdm9pZCBtYXBweV9zb3VuZF9lbmFibGVfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7 CnZvaWQgbWFwcHlfc291bmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7Cgp2b2lkIG5h bWNvczFfc291bmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwg X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgbmFtY29zMV93 YXZlZGF0YV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKZGF0YThfdCBuYW1jb3MxX3Nv dW5kX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90 IG5hbWNvczFfd2F2ZWRhdGFfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCk7CgpleHRlcm4gdW5zaWduZWQgY2hhciAqbmFtY29fc291bmRyZWdzOwpleHRlcm4gdW5z aWduZWQgY2hhciAqbmFtY29fd2F2ZWRhdGE7CiMgNzYgInNyYy9zbmRpbnRyZi5oIiAyCgoKIyAx ICJzcmMvc291bmQvdG1zMzZ4eC5oIiAxCiMgMTIgInNyYy9zb3VuZC90bXMzNnh4LmgiCnN0cnVj dCBUTVMzNlhYaW50ZXJmYWNlIHsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCBtaXhpbmdf bGV2ZWxbNF07CiAgICAgICAgaW50IHN1YnR5cGVbNF07CiAgICAgICAgaW50IGJhc2VmcmVxWzRd OwogICAgICAgIGRvdWJsZSBkZWNheVs0XVs2XTsKICAgICAgICBkb3VibGUgc3BlZWRbNF07Cn07 CgpleHRlcm4gaW50IHRtczM2eHhfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAq bXNvdW5kKTsKZXh0ZXJuIHZvaWQgdG1zMzZ4eF9zaF9zdG9wKHZvaWQpOwpleHRlcm4gdm9pZCB0 bXMzNnh4X3NoX3VwZGF0ZSh2b2lkKTsKCgpleHRlcm4gdm9pZCBtbTYyMjFhYV90dW5lX3coaW50 IGNoaXAsIGludCB0dW5lKTsKCgpleHRlcm4gdm9pZCB0bXMzNnh4X25vdGVfdyhpbnQgY2hpcCwg aW50IG9jdGF2ZSwgaW50IG5vdGUpOwoKCmV4dGVybiB2b2lkIHRtczM2MTdfZW5hYmxlX3coaW50 IGNoaXAsIGludCBlbmFibGUpOwojIDc5ICJzcmMvc25kaW50cmYuaCIgMgoKCiMgMSAic3JjL3Nv dW5kLzUxMTBpbnRmLmgiIDEKCgoKc3RydWN0IFRNUzUxMTBpbnRlcmZhY2UKewogICAgICAgIGlu dCBiYXNlY2xvY2s7CgoKICAgICAgICBpbnQgbWl4aW5nX2xldmVsOwogICAgICAgIHZvaWQgKCpp cnEpKGludCBzdGF0ZSk7CiAgICAgICAgaW50ICgqTTBfY2FsbGJhY2spKHZvaWQpOwp9OwoKaW50 IHRtczUxMTBfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9p ZCB0bXM1MTEwX3NoX3N0b3Aodm9pZCk7CnZvaWQgdG1zNTExMF9zaF91cGRhdGUodm9pZCk7Cgp2 b2lkIHRtczUxMTBfQ1RMX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHRtczUx MTBfUERDX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwoKZGF0YThfdCB0bXM1MTEwX3N0 YXR1c19yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKaW50IHRt czUxMTBfcmVhZHlfcih2b2lkKTsKCnZvaWQgdG1zNTExMF9yZXNldCh2b2lkKTsKdm9pZCB0bXM1 MTEwX3NldF9mcmVxdWVuY3koaW50IGZyZXF1ZW5jeSk7CiMgODIgInNyYy9zbmRpbnRyZi5oIiAy CgoKIyAxICJzcmMvc291bmQvNTIyMGludGYuaCIgMQoKCgpzdHJ1Y3QgVE1TNTIyMGludGVyZmFj ZQp7CiAgICAgICAgaW50IGJhc2VjbG9jazsKCgogICAgICAgIGludCBtaXhpbmdfbGV2ZWw7CiAg ICAgICAgdm9pZCAoKmlycSkoaW50IHN0YXRlKTsKfTsKCmludCB0bXM1MjIwX3NoX3N0YXJ0KGNv bnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgdG1zNTIyMF9zaF9zdG9wKHZv aWQpOwp2b2lkIHRtczUyMjBfc2hfdXBkYXRlKHZvaWQpOwoKdm9pZCB0bXM1MjIwX2RhdGFfdyhf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CmRhdGE4X3QgdG1zNTIyMF9zdGF0dXNfcihfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmludCB0bXM1MjIwX3JlYWR5 X3Iodm9pZCk7CmludCB0bXM1MjIwX2ludF9yKHZvaWQpOwoKdm9pZCB0bXM1MjIwX3Jlc2V0KHZv aWQpOwp2b2lkIHRtczUyMjBfc2V0X2ZyZXF1ZW5jeShpbnQgZnJlcXVlbmN5KTsKIyA4NSAic3Jj L3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC92bG01MDMwLmgiIDEKCgoKc3RydWN0IFZM TTUwMzBpbnRlcmZhY2UKewogICAgICAgIGludCBiYXNlY2xvY2s7CiAgICAgICAgaW50IHZvbHVt ZTsKICAgICAgICBpbnQgbWVtb3J5X3JlZ2lvbjsKICAgICAgICBpbnQgbWVtb3J5X3NpemU7Cn07 CgoKaW50IFZMTTUwMzBfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5k KTsKdm9pZCBWTE01MDMwX3NoX3N0b3AgKHZvaWQpOwp2b2lkIFZMTTUwMzBfc2hfdXBkYXRlICh2 b2lkKTsKCgp2b2lkIFZMTTUwMzBfc2V0X3JvbSh2b2lkICpzcGVlY2hfcm9tKTsKCgppbnQgVkxN NTAzMF9CU1kodm9pZCk7Cgp2b2lkIFZMTTUwMzBfZGF0YV93KF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThf dCBkYXRhKTsKCnZvaWQgVkxNNTAzMF9SU1QgKGludCBwaW4gKTsKCnZvaWQgVkxNNTAzMF9WQ1Uo aW50IHBpbiApOwoKdm9pZCBWTE01MDMwX1NUKGludCBwaW4gKTsKIyA4OCAic3JjL3NuZGludHJm LmgiIDIKCgojIDEgInNyYy9zb3VuZC9hZHBjbS5oIiAxCiMgOSAic3JjL3NvdW5kL2FkcGNtLmgi CnN0cnVjdCBBRFBDTWludGVyZmFjZQp7CiAgICAgICAgaW50IG51bTsKICAgICAgICBpbnQgZnJl cXVlbmN5OwogICAgICAgIGludCByZWdpb247CiAgICAgICAgaW50IG1peGluZ19sZXZlbFs4XTsK fTsKCmludCBBRFBDTV9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQp Owp2b2lkIEFEUENNX3NoX3N0b3Aodm9pZCk7CnZvaWQgQURQQ01fc2hfdXBkYXRlKHZvaWQpOwoK dm9pZCBBRFBDTV9wbGF5KGludCBudW0sIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwp2b2lkIEFE UENNX3NldHZvbChpbnQgbnVtLCBpbnQgdm9sKTsKdm9pZCBBRFBDTV9zdG9wKGludCBudW0pOwpp bnQgQURQQ01fcGxheWluZyhpbnQgbnVtKTsKIyAzNyAic3JjL3NvdW5kL2FkcGNtLmgiCnN0cnVj dCBPS0lNNjI5NWludGVyZmFjZQp7CiAgICAgICAgaW50IG51bTsKICAgICAgICBpbnQgZnJlcXVl bmN5WzJdOwogICAgICAgIGludCByZWdpb25bMl07CiAgICAgICAgaW50IG1peGluZ19sZXZlbFsy XTsKfTsKCmludCBPS0lNNjI5NV9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICpt c291bmQpOwp2b2lkIE9LSU02Mjk1X3NoX3N0b3Aodm9pZCk7CnZvaWQgT0tJTTYyOTVfc2hfdXBk YXRlKHZvaWQpOwp2b2lkIE9LSU02Mjk1X3NldF9iYW5rX2Jhc2UoaW50IHdoaWNoLCBpbnQgYmFz ZSk7CnZvaWQgT0tJTTYyOTVfc2V0X2ZyZXF1ZW5jeShpbnQgd2hpY2gsIGludCBmcmVxdWVuY3kp OwoKZGF0YThfdCBPS0lNNjI5NV9zdGF0dXNfMF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YThfdCBPS0lNNjI5NV9zdGF0dXNfMV9yKF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKZGF0YTE2X3QgT0tJTTYyOTVfc3RhdHVz XzBfbHNiX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IE9LSU02 Mjk1X3N0YXR1c18xX2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRh MTZfdCBPS0lNNjI5NV9zdGF0dXNfMF9tc2JfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9t YXNrKTsKZGF0YTE2X3QgT0tJTTYyOTVfc3RhdHVzXzFfbXNiX3IoX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh MTZfdCBtZW1fbWFzayk7CnZvaWQgT0tJTTYyOTVfZGF0YV8wX3coX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh OF90IGRhdGEpOwp2b2lkIE9LSU02Mjk1X2RhdGFfMV93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBk YXRhKTsKdm9pZCBPS0lNNjI5NV9kYXRhXzBfbHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRf XykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBk YXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lk IE9LSU02Mjk1X2RhdGFfMV9sc2JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190 IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgT0tJTTYyOTVf ZGF0YV8wX21zYl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBPS0lNNjI5NV9kYXRhXzFfbXNi X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgZGF0YTE2X3QgbWVtX21hc2spOwojIDkxICJzcmMvc25kaW50cmYuaCIgMgoKCiMgMSAic3Jj L3NvdW5kL21zbTUyMDUuaCIgMQojIDE5ICJzcmMvc291bmQvbXNtNTIwNS5oIgpzdHJ1Y3QgTVNN NTIwNWludGVyZmFjZQp7CiAgICAgICAgaW50IG51bTsKICAgICAgICBpbnQgYmFzZWNsb2NrOwog ICAgICAgIHZvaWQgKCp2Y2xrX2ludGVycnVwdFs0XSkoaW50KTsKICAgICAgICBpbnQgc2VsZWN0 WzRdOwogICAgICAgIGludCBtaXhpbmdfbGV2ZWxbNF07Cn07CgppbnQgTVNNNTIwNV9zaF9zdGFy dCAoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBNU001MjA1X3NoX3N0 b3AgKHZvaWQpOwp2b2lkIE1TTTUyMDVfc2hfdXBkYXRlICh2b2lkKTsKdm9pZCBNU001MjA1X3No X3Jlc2V0ICh2b2lkKTsKCgp2b2lkIE1TTTUyMDVfcmVzZXRfdyAoaW50IG51bSwgaW50IHJlc2V0 KTsKCnZvaWQgTVNNNTIwNV9kYXRhX3cgKGludCBudW0sIGludCBkYXRhKTsKCgoKdm9pZCBNU001 MjA1X3ZjbGtfdyAoaW50IG51bSwgaW50IHJlc2V0KTsKCnZvaWQgTVNNNTIwNV9wbGF5bW9kZV93 KGludCBudW0saW50IF9zZWxlY3QpOwoKdm9pZCBNU001MjA1X3NldF92b2x1bWUoaW50IG51bSxp bnQgdm9sdW1lKTsKIyA5NCAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9tc201 MjMyLmgiIDEKCgoKCgpzdHJ1Y3QgTVNNNTIzMmludGVyZmFjZQp7CiAgICAgICAgaW50IG51bTsK ICAgICAgICBpbnQgYmFzZWNsb2NrOwogICAgICAgIGRvdWJsZSBjYXBhY2l0eVsyXVs4XTsKICAg ICAgICBpbnQgbWl4aW5nX2xldmVsWzJdOwp9OwoKaW50IE1TTTUyMzJfc2hfc3RhcnQgKGNvbnN0 IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgTVNNNTIzMl9zaF9zdG9wICh2b2lk KTsKdm9pZCBNU001MjMyX3NoX3Jlc2V0ICh2b2lkKTsKCnZvaWQgTVNNNTIzMl8wX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIE1TTTUyMzJfMV93KF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0 YThfdCBkYXRhKTsKIyA5NyAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC91cGQ3 NzU5LmgiIDEKIyAxNCAic3JjL3NvdW5kL3VwZDc3NTkuaCIKc3RydWN0IFVQRDc3NTlfaW50ZXJm YWNlCnsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCB2b2x1bWVbMl07CiAgICAgICAgaW50 IHJlZ2lvblsyXTsKICAgICAgICBpbnQgbW9kZTsKICAgICAgICB2b2lkICgqaXJxY2FsbGJhY2tb Ml0pKGludCBwYXJhbSk7Cn07CgppbnQgVVBENzc1OV9zaF9zdGFydCAoY29uc3Qgc3RydWN0IE1h Y2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBVUEQ3NzU5X3NoX3N0b3AgKHZvaWQpOwoKdm9pZCBV UEQ3NzU5X3NldF9iYW5rX2Jhc2UoaW50IHdoaWNoLCBvZmZzX3QgYmFzZSk7Cgp2b2lkIFVQRDc3 NTlfcmVzZXRfdyAoaW50IG51bSwgVUlOVDggZGF0YSk7Cgp2b2lkIFVQRDc3NTlfdyAoaW50IG51 bSwgVUlOVDggZGF0YSk7CnZvaWQgVVBENzc1OV9wb3J0X3cgKGludCBudW0sIFVJTlQ4IGRhdGEp Owp2b2lkIFVQRDc3NTlfc3RhcnRfdyAoaW50IG51bSwgVUlOVDggZGF0YSk7CmludCBVUEQ3NzU5 X2J1c3lfciAoaW50IG51bSk7Cgp2b2lkIFVQRDc3NTlfMF9yZXNldF93KF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YThfdCBkYXRhKTsKdm9pZCBVUEQ3NzU5XzBfcG9ydF93KF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThf dCBkYXRhKTsKdm9pZCBVUEQ3NzU5XzBfc3RhcnRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0 YSk7CmRhdGE4X3QgVVBENzc1OV8wX2J1c3lfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCk7CiMgMTAwICJzcmMvc25kaW50cmYuaCIgMgoKCiMgMSAic3JjL3NvdW5k L2hjNTU1MTYuaCIgMQoKCgoKCnN0cnVjdCBoYzU1NTE2X2ludGVyZmFjZQp7CiAgICAgICAgaW50 IG51bTsKICAgICAgICBpbnQgdm9sdW1lWzRdOwp9OwoKaW50IGhjNTU1MTZfc2hfc3RhcnQoY29u c3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKCgp2b2lkIGhjNTU1MTZfZGlnaXRfdyhp bnQgbnVtLCBpbnQgZGF0YSk7CgoKdm9pZCBoYzU1NTE2X2Nsb2NrX3coaW50IG51bSwgaW50IHN0 YXRlKTsKCgp2b2lkIGhjNTU1MTZfY2xvY2tfY2xlYXJfdyhpbnQgbnVtLCBpbnQgZGF0YSk7CnZv aWQgaGM1NTUxNl9jbG9ja19zZXRfdyhpbnQgbnVtLCBpbnQgZGF0YSk7CgoKdm9pZCBoYzU1NTE2 X2RpZ2l0X2Nsb2NrX2NsZWFyX3coaW50IG51bSwgaW50IGRhdGEpOwoKdm9pZCBoYzU1NTE2XzBf ZGlnaXRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgaGM1NTUxNl8wX2Nsb2Nr X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIGhjNTU1MTZfMF9jbG9ja19jbGVh cl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBoYzU1NTE2XzBfY2xvY2tfc2V0 X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIGhjNTU1MTZfMF9kaWdpdF9jbG9j a19jbGVhcl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKIyAxMDMgInNyYy9zbmRpbnRy Zi5oIiAyCgoKIyAxICJzcmMvc291bmQvazAwNTI4OS5oIiAxCgoKCnN0cnVjdCBrMDA1Mjg5X2lu dGVyZmFjZQp7CiAgICAgICAgaW50IG1hc3Rlcl9jbG9jazsKICAgICAgICBpbnQgdm9sdW1lOwog ICAgICAgIGludCByZWdpb247Cn07CgppbnQgSzAwNTI4OV9zaF9zdGFydChjb25zdCBzdHJ1Y3Qg TWFjaGluZVNvdW5kICptc291bmQpOwp2b2lkIEswMDUyODlfc2hfc3RvcCh2b2lkKTsKCnZvaWQg azAwNTI4OV9jb250cm9sX0FfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgazAw NTI4OV9jb250cm9sX0JfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNl dCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgazAwNTI4 OV9waXRjaF9BX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIGswMDUyODlfcGl0 Y2hfQl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBrMDA1Mjg5X2tleWxhdGNo X0FfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgazAwNTI4OV9rZXlsYXRjaF9C X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwojIDEwNiAic3JjL3NuZGludHJmLmgiIDIK CgojIDEgInNyYy9zb3VuZC9rMDA3MjMyLmgiIDEKIyAxMCAic3JjL3NvdW5kL2swMDcyMzIuaCIK c3RydWN0IEswMDcyMzJfaW50ZXJmYWNlCnsKICAgICAgICBpbnQgbnVtX2NoaXBzOwogICAgICAg IGludCBiYW5rWzNdOwogICAgICAgIGludCB2b2x1bWVbM107CiAgICAgICAgdm9pZCAoKnBvcnR3 cml0ZWhhbmRsZXJbM10pKGludCk7Cn07CgoKCmludCBLMDA3MjMyX3NoX3N0YXJ0KGNvbnN0IHN0 cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7Cgp2b2lkIEswMDcyMzJfd3JpdGVfcG9ydF8wX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIEswMDcyMzJfd3JpdGVfcG9ydF8xX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIEswMDcyMzJfd3JpdGVfcG9ydF8yX3co X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwpkYXRhOF90IEswMDcyMzJfcmVhZF9wb3J0XzBf cihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgSzAw NzIzMl9yZWFkX3BvcnRfMV9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zm c2V0KTsKZGF0YThfdCBLMDA3MjMyX3JlYWRfcG9ydF8yX3IoX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQpOwoKdm9pZCBLMDA3MjMyX2Jhbmtzd2l0Y2goaW50IGNoaXAs dW5zaWduZWQgY2hhciAqcHRyX0EsdW5zaWduZWQgY2hhciAqcHRyX0IpOwojIDM5ICJzcmMvc291 bmQvazAwNzIzMi5oIgp2b2lkIEswMDcyMzJfc2V0X3ZvbHVtZShpbnQgY2hpcCxpbnQgY2hhbm5l bCxpbnQgdm9sdW1lQSxpbnQgdm9sdW1lQik7CiMgMTA5ICJzcmMvc25kaW50cmYuaCIgMgoKCiMg MSAic3JjL3NvdW5kL2swNTE2NDkuaCIgMQoKCgpzdHJ1Y3QgazA1MTY0OV9pbnRlcmZhY2UKewog ICAgICAgIGludCBtYXN0ZXJfY2xvY2s7CiAgICAgICAgaW50IHZvbHVtZTsKfTsKCmludCBLMDUx NjQ5X3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgSzA1 MTY0OV9zaF9zdG9wKHZvaWQpOwoKdm9pZCBLMDUxNjQ5X3dhdmVmb3JtX3coX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhOF90IGRhdGEpOwp2b2lkIEswNTE2NDlfdm9sdW1lX3coX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh OF90IGRhdGEpOwp2b2lkIEswNTE2NDlfZnJlcXVlbmN5X3coX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90 IGRhdGEpOwp2b2lkIEswNTE2NDlfa2V5b25vZmZfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0 YSk7CnZvaWQgSzA1MjUzOV93YXZlZm9ybV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBv ZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsK IyAxMTIgInNyYy9zbmRpbnRyZi5oIiAyCgoKIyAxICJzcmMvc291bmQvazA1MzI2MC5oIiAxCiMg MTEgInNyYy9zb3VuZC9rMDUzMjYwLmgiCnN0cnVjdCBLMDUzMjYwX2ludGVyZmFjZSB7CiAgICAg ICAgaW50IG51bTsKICAgICAgICBpbnQgY2xvY2tbMl07CiAgICAgICAgaW50IHJlZ2lvblsyXTsK ICAgICAgICBpbnQgbWl4aW5nX2xldmVsWzJdWzJdOwogICAgICAgIHZvaWQgKCppcnFbMl0pKCBp bnQgcGFyYW0gKTsKfTsKCgppbnQgSzA1MzI2MF9zaF9zdGFydCggY29uc3Qgc3RydWN0IE1hY2hp bmVTb3VuZCAqbXNvdW5kICk7CnZvaWQgSzA1MzI2MF9zaF9zdG9wKCB2b2lkICk7Cgp2b2lkIEsw NTMyNjBfMF93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBLMDUzMjYwXzFfdyhf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CmRhdGE4X3QgSzA1MzI2MF8wX3IoX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwpkYXRhOF90IEswNTMyNjBfMV9yKF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKdm9pZCBLMDUzMjYwXzBf bHNiX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBLMDUzMjYwXzBfbHNiX3IoX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgSzA1MzI2MF8xX2xzYl93KF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IG1lbV9tYXNrKTsKZGF0YTE2X3QgSzA1MzI2MF8xX2xzYl9yKF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2 X3QgbWVtX21hc2spOwojIDExNSAic3JjL3NuZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9r MDU0NTM5LmgiIDEKIyAxMSAic3JjL3NvdW5kL2swNTQ1MzkuaCIKc3RydWN0IEswNTQ1MzlpbnRl cmZhY2UgewogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGNsb2NrOwogICAgICAgIGludCBy ZWdpb25bMl07CiAgICAgICAgaW50IG1peGluZ19sZXZlbFsyXVsyXTsKICAgICAgICB2b2lkICgq YXBhblsyXSkoZG91YmxlLCBkb3VibGUpOwogICAgICAgIHZvaWQgKCppcnFbMl0pKCB2b2lkICk7 Cn07CgoKaW50IEswNTQ1Mzlfc2hfc3RhcnQoIGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1z b3VuZCApOwp2b2lkIEswNTQ1Mzlfc2hfc3RvcCggdm9pZCApOwp2b2lkIEswNTQ1MzlfMF93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKZGF0YThfdCBLMDU0NTM5XzBfcihfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CnZvaWQgSzA1NDUzOV8xX3coX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBkYXRhOF90IGRhdGEpOwpkYXRhOF90IEswNTQ1MzlfMV9yKF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKIyAxMTggInNyYy9zbmRpbnRyZi5oIiAyCgoK IyAxICJzcmMvc291bmQvc2VnYXBjbS5oIiAxCiMgMTggInNyYy9zb3VuZC9zZWdhcGNtLmgiCmVu dW0KewogICAgICAgIExfUEFOID0gMCwKICAgICAgICBSX1BBTiA9IDEsCiAgICAgICAgTFJfUEFO ID0gMgp9OwoKCgoKCnR5cGVkZWYgc3RydWN0IHNlZ2FwY20KewogICAgICAgIGNoYXIgd3JpdGVy YW1bMHgxMDAwXTsKCiAgICAgICAgdW5zaWduZWQgY2hhciBnYWluWygxNildW0xSX1BBTl07CiAg ICAgICAgdW5zaWduZWQgY2hhciBhZGRyX2xbKDE2KV07CiAgICAgICAgdW5zaWduZWQgY2hhciBh ZGRyX2hbKDE2KV07CiAgICAgICAgdW5zaWduZWQgY2hhciBiYW5rWygxNildOwogICAgICAgIHVu c2lnbmVkIGNoYXIgZW5kX2hbKDE2KV07CiAgICAgICAgdW5zaWduZWQgY2hhciBkZWx0YV90Wygx NildOwoKICAgICAgICBpbnQgdm9sWygxNildW0xSX1BBTl07CgogICAgICAgIHVuc2lnbmVkIGlu dCBhZGRfYWRkclsoMTYpXTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RlcFsoMTYpXTsKICAgICAg ICBpbnQgZmxhZ1soMTYpXTsKICAgICAgICBpbnQgYmFua3NoaWZ0OwogICAgICAgIGludCBiYW5r bWFzazsKCiAgICAgICAgaW50IHBjbWRbKDE2KV07CiAgICAgICAgaW50IHBjbWFbKDE2KV07Cn0g U0VHQVBDTTsKCnN0cnVjdCBTRUdBUENNaW50ZXJmYWNlCnsKICAgICAgICBpbnQgbW9kZTsKICAg ICAgICBpbnQgYmFuazsKICAgICAgICBpbnQgcmVnaW9uOwogICAgICAgIGludCB2b2x1bWU7Cn07 CgplbnVtIFNFR0FQQ01fc2FtcGxlcmF0ZQp7CiAgICAgICAgU0VHQVBDTV9TQU1QTEUxNUssCiAg ICAgICAgU0VHQVBDTV9TQU1QTEUzMksKfTsKCgppbnQgU0VHQVBDTV9zaF9zdGFydCggY29uc3Qg c3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kICk7CnZvaWQgU0VHQVBDTV9zaF9zdG9wKCB2b2lk ICk7CnZvaWQgU0VHQVBDTV9zaF91cGRhdGUoIHZvaWQgKTsKCmludCBTRUdBUENNSW5pdCggY29u c3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kLCBpbnQgYmFua3NpemUsIGludCBtb2RlLCB1 bnNpZ25lZCBjaGFyICppbnBjbSwgaW50IHZvbHVtZSApOwp2b2lkIFNFR0FQQ01TaHV0ZG93bigg dm9pZCApOwp2b2lkIFNFR0FQQ01SZXNldENoaXAoIHZvaWQgKTsKdm9pZCBTZWdhUENNX3coX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwpkYXRhOF90IFNlZ2FQQ01fcihfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CiMgMTIxICJzcmMvc25kaW50cmYuaCIgMgoK CiMgMSAic3JjL3NvdW5kL3JmNWM2OC5oIiAxCiMgMTEgInNyYy9zb3VuZC9yZjVjNjguaCIKdHlw ZWRlZiBzdHJ1Y3QgcmY1YzY4cGNtCnsKICAgICAgICBpbnQgY2xvY2s7CiAgICAgICAgdW5zaWdu ZWQgY2hhciBlbnZbKDgpXTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhblsoOCldOwogICAgICAg IHVuc2lnbmVkIGludCBhZGRyWyg4KV07CiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0Wyg4KV07 CiAgICAgICAgdW5zaWduZWQgaW50IHN0ZXBbKDgpXTsKICAgICAgICB1bnNpZ25lZCBpbnQgbG9v cFsoOCldOwogICAgICAgIGludCBwY214WzJdWyg4KV07CiAgICAgICAgaW50IGZsYWdbKDgpXTsK CiAgICAgICAgaW50IHBjbWRbKDgpXTsKICAgICAgICBpbnQgcGNtYVsoOCldOwp9IFJGNUM2OFBD TTsKCnN0cnVjdCBSRjVDNjhpbnRlcmZhY2UKewogICAgICAgIGludCBjbG9jazsKICAgICAgICBp bnQgdm9sdW1lOwp9OwoKCmludCBSRjVDNjhfc2hfc3RhcnQoIGNvbnN0IHN0cnVjdCBNYWNoaW5l U291bmQgKm1zb3VuZCApOwp2b2lkIFJGNUM2OF9zaF9zdG9wKCB2b2lkICk7CnZvaWQgUkY1QzY4 X3JlZ193KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJp YnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKCmRhdGE4X3QgUkY1QzY4X3IoX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQpOwp2b2lkIFJGNUM2OF93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKIyAxMjQgInNyYy9zbmRpbnRyZi5oIiAyCgoKIyAx ICJzcmMvc291bmQvY2VtMzM5NC5oIiAxCgoKCgoKCnN0cnVjdCBjZW0zMzk0X2ludGVyZmFjZQp7 CiAgICAgICAgaW50IG51bWNoaXBzOwogICAgICAgIGludCB2b2x1bWVbNl07CiAgICAgICAgZG91 YmxlIHZjb196ZXJvX2ZyZXFbNl07CiAgICAgICAgZG91YmxlIGZpbHRlcl96ZXJvX2ZyZXFbNl07 CiAgICAgICAgdm9pZCAoKmV4dGVybmFsWzZdKShpbnQsIGludCwgc2hvcnQgKik7Cn07CgoKZW51 bQp7CiAgICAgICAgQ0VNMzM5NF9WQ09fRlJFUVVFTkNZID0gMCwKICAgICAgICBDRU0zMzk0X01P RFVMQVRJT05fQU1PVU5ULAogICAgICAgIENFTTMzOTRfV0FWRV9TRUxFQ1QsCiAgICAgICAgQ0VN MzM5NF9QVUxTRV9XSURUSCwKICAgICAgICBDRU0zMzk0X01JWEVSX0JBTEFOQ0UsCiAgICAgICAg Q0VNMzM5NF9GSUxURVJfUkVTT05BTkNFLAogICAgICAgIENFTTMzOTRfRklMVEVSX0ZSRVFFTkNZ LAogICAgICAgIENFTTMzOTRfRklOQUxfR0FJTgp9OwoKaW50IGNlbTMzOTRfc2hfc3RhcnQoY29u c3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kKTsKdm9pZCBjZW0zMzk0X3NoX3N0b3Aodm9p ZCk7CgoKdm9pZCBjZW0zMzk0X3NldF92b2x0YWdlKGludCBjaGlwLCBpbnQgaW5wdXQsIGRvdWJs ZSB2b2x0YWdlKTsKIyA0NCAic3JjL3NvdW5kL2NlbTMzOTQuaCIKZG91YmxlIGNlbTMzOTRfZ2V0 X3BhcmFtZXRlcihpbnQgY2hpcCwgaW50IGlucHV0KTsKIyAxMjcgInNyYy9zbmRpbnRyZi5oIiAy CgoKIyAxICJzcmMvc291bmQvYzE0MC5oIiAxCgoKCgoKaW50IEMxNDBfc2hfc3RhcnQoIGNvbnN0 IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCApOwp2b2lkIEMxNDBfc2hfc3RvcCggdm9pZCAp Owp2b2lkIEMxNDBfc2hfdXBkYXRlKCB2b2lkICk7CmRhdGE4X3QgQzE0MF9yKF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKdm9pZCBDMTQwX3coX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhOF90IGRhdGEpOwoKc3RydWN0IEMxNDBpbnRlcmZhY2UgewogICAgaW50IGZyZXF1ZW5j eTsKICAgIGludCByZWdpb247CiAgICBpbnQgbWl4aW5nX2xldmVsOwp9OwojIDEzMCAic3JjL3Nu ZGludHJmLmgiIDIKCgojIDEgInNyYy9zb3VuZC9xc291bmQuaCIgMQojIDEyICJzcmMvc291bmQv cXNvdW5kLmgiCnN0cnVjdCBRU291bmRfaW50ZXJmYWNlIHsKICAgICAgICBpbnQgY2xvY2s7CiAg ICAgICAgaW50IHJlZ2lvbjsKICAgICAgICBpbnQgbWl4aW5nX2xldmVsWzJdOwp9OwoKaW50IHFz b3VuZF9zaF9zdGFydCggY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNvdW5kICk7CnZvaWQg cXNvdW5kX3NoX3N0b3AoIHZvaWQgKTsKCnZvaWQgcXNvdW5kX2RhdGFfaF93KF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f KSkgZGF0YThfdCBkYXRhKTsKdm9pZCBxc291bmRfZGF0YV9sX3coX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRh OF90IGRhdGEpOwp2b2lkIHFzb3VuZF9jbWRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7 CmRhdGE4X3QgcXNvdW5kX3N0YXR1c19yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZz X3Qgb2Zmc2V0KTsKIyAxMzMgInNyYy9zbmRpbnRyZi5oIiAyCgoKIyAxICJzcmMvc291bmQvc2Fh MTA5OS5oIiAxCiMgMTEgInNyYy9zb3VuZC9zYWExMDk5LmgiCnN0cnVjdCBTQUExMDk5X2ludGVy ZmFjZQp7CiAgICAgICAgaW50IG51bWNoaXBzOwogICAgICAgIGludCB2b2x1bWVbMl1bMl07Cn07 CgoKCgoKaW50IHNhYTEwOTlfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAqbXNv dW5kKTsKdm9pZCBzYWExMDk5X3NoX3N0b3Aodm9pZCk7Cgp2b2lkIHNhYTEwOTlfY29udHJvbF9w b3J0XzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgc2FhMTA5OV93cml0ZV9w b3J0XzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRy aWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CnZvaWQgc2FhMTA5OV9jb250cm9s X3BvcnRfMV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKdm9pZCBzYWExMDk5X3dyaXRl X3BvcnRfMV93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsKIyAxMzYgInNyYy9zbmRpbnRy Zi5oIiAyCgoKIyAxICJzcmMvc291bmQvaXJlbWdhMjAuaCIgMQojIDkgInNyYy9zb3VuZC9pcmVt Z2EyMC5oIgpzdHJ1Y3QgSXJlbUdBMjBfaW50ZXJmYWNlIHsKICAgICAgICBpbnQgY2xvY2s7CiAg ICAgICAgaW50IHJlZ2lvbjsKICAgICAgICBpbnQgbWl4aW5nX2xldmVsWzJdOwp9OwoKaW50IEly ZW1HQTIwX3NoX3N0YXJ0KCBjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQgKTsKdm9p ZCBJcmVtR0EyMF9zaF9zdG9wKCB2b2lkICk7CnZvaWQgSXJlbUdBMjBfdyhfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp IGRhdGE4X3QgZGF0YSk7CmRhdGE4X3QgSXJlbUdBMjBfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCk7CiMgMTM5ICJzcmMvc25kaW50cmYuaCIgMgoKCiMgMSAic3Jj L3NvdW5kL2VzNTUwNi5oIiAxCiMgMTMgInNyYy9zb3VuZC9lczU1MDYuaCIKc3RydWN0IEVTNTUw NWludGVyZmFjZQp7CiAgICAgICAgaW50IG51bTsKICAgICAgICBpbnQgYmFzZWNsb2NrWzJdOwog ICAgICAgIGludCByZWdpb24wWzJdOwogICAgICAgIGludCByZWdpb24xWzJdOwogICAgICAgIGlu dCBtaXhpbmdfbGV2ZWxbMl07CiAgICAgICAgdm9pZCAoKmlycV9jYWxsYmFja1syXSkoaW50IHN0 YXRlKTsKICAgICAgICBVSU5UMTYgKCpyZWFkX3BvcnRbMl0pKHZvaWQpOwp9OwoKaW50IEVTNTUw NV9zaF9zdGFydChjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5kICptc291bmQpOwp2b2lkIEVTNTUw NV9zaF9zdG9wKHZvaWQpOwoKZGF0YTE2X3QgRVM1NTA1X2RhdGFfMF9yKF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBFUzU1MDVfZGF0YV8xX3IoX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgRVM1NTA1X2RhdGFfMF93KF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg ZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9t YXNrKTsKdm9pZCBFUzU1MDVfZGF0YV8xX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9m ZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwoKCgoKCgpzdHJ1 Y3QgRVM1NTA2aW50ZXJmYWNlCnsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCBiYXNlY2xv Y2tbMl07CiAgICAgICAgaW50IHJlZ2lvbjBbMl07CiAgICAgICAgaW50IHJlZ2lvbjFbMl07CiAg ICAgICAgaW50IHJlZ2lvbjJbMl07CiAgICAgICAgaW50IHJlZ2lvbjNbMl07CiAgICAgICAgaW50 IG1peGluZ19sZXZlbFsyXTsKICAgICAgICB2b2lkICgqaXJxX2NhbGxiYWNrWzJdKShpbnQgc3Rh dGUpOwogICAgICAgIFVJTlQxNiAoKnJlYWRfcG9ydFsyXSkodm9pZCk7Cn07CgppbnQgRVM1NTA2 X3NoX3N0YXJ0KGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1zb3VuZCk7CnZvaWQgRVM1NTA2 X3NoX3N0b3Aodm9pZCk7CgpkYXRhOF90IEVTNTUwNl9kYXRhXzBfcihfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGE4X3QgRVM1NTA2X2RhdGFfMV9yKF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0KTsKdm9pZCBFUzU1MDZfZGF0YV8w X3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRl X18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIEVTNTUwNl9kYXRhXzFfdyhfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191 bnVzZWRfXykpIGRhdGE4X3QgZGF0YSk7CgpkYXRhMTZfdCBFUzU1MDZfZGF0YV8wX3dvcmRfcihf X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygo X191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3QgRVM1NTA2X2RhdGFfMV93 b3JkX3IoX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgRVM1NTA2X2RhdGFf MF93b3JkX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIEVTNTUwNl9kYXRhXzFfd29yZF93KF9f YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChf X3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRh dGExNl90IG1lbV9tYXNrKTsKCnZvaWQgRVM1NTA2X3ZvaWNlX2JhbmtfMF93KGludCB2b2ljZSwg aW50IGJhbmspOwp2b2lkIEVTNTUwNl92b2ljZV9iYW5rXzFfdyhpbnQgdm9pY2UsIGludCBiYW5r KTsKIyAxNDIgInNyYy9zbmRpbnRyZi5oIiAyCgoKIyAxICJzcmMvc291bmQvYnNtdDIwMDAuaCIg MQojIDEzICJzcmMvc291bmQvYnNtdDIwMDAuaCIKc3RydWN0IEJTTVQyMDAwaW50ZXJmYWNlCnsK ICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCBiYXNlY2xvY2tbMV07CiAgICAgICAgaW50IHZv aWNlc1sxXTsKICAgICAgICBpbnQgcmVnaW9uWzFdOwogICAgICAgIGludCBtaXhpbmdfbGV2ZWxb MV07Cn07CgppbnQgQlNNVDIwMDBfc2hfc3RhcnQoY29uc3Qgc3RydWN0IE1hY2hpbmVTb3VuZCAq bXNvdW5kKTsKdm9pZCBCU01UMjAwMF9zaF9zdG9wKHZvaWQpOwp2b2lkIEJTTVQyMDAwX3NoX3Jl c2V0KHZvaWQpOwoKdm9pZCBCU01UMjAwMF9kYXRhXzBfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CiMg MTQ1ICJzcmMvc25kaW50cmYuaCIgMgojIDE2NiAic3JjL3NuZGludHJmLmgiCmVudW0KewogICAg ICAgIFNPVU5EX0RVTU1ZLAoKICAgICAgICBTT1VORF9DVVNUT00sCgoKICAgICAgICBTT1VORF9T QU1QTEVTLAoKCiAgICAgICAgU09VTkRfREFDLAoKCiAgICAgICAgU09VTkRfRElTQ1JFVEUsCgoK ICAgICAgICBTT1VORF9BWTg5MTAsCgoKICAgICAgICBTT1VORF9ZTTIyMDMsCgoKCgoKICAgICAg ICBTT1VORF9ZTTIxNTEsCgoKICAgICAgICBTT1VORF9ZTTI2MDgsCgoKICAgICAgICBTT1VORF9Z TTI2MTAsCgoKICAgICAgICBTT1VORF9ZTTI2MTBCLAoKCiAgICAgICAgU09VTkRfWU0yNjEyLAoK CiAgICAgICAgU09VTkRfWU0zNDM4LAoKCiAgICAgICAgU09VTkRfWU0yNDEzLAoKCiAgICAgICAg U09VTkRfWU0zODEyLAoKCiAgICAgICAgU09VTkRfWU0zNTI2LAoKCiAgICAgICAgU09VTkRfWU1a MjgwQiwKCgogICAgICAgIFNPVU5EX1k4OTUwLAoKCiAgICAgICAgU09VTkRfU043NjQ3NywKCgog ICAgICAgIFNPVU5EX1NONzY0OTYsCgoKICAgICAgICBTT1VORF9QT0tFWSwKCgogICAgICAgIFNP VU5EX05FUywKCgogICAgICAgIFNPVU5EX0FTVFJPQ0FERSwKCgogICAgICAgIFNPVU5EX05BTUNP LAoKCiAgICAgICAgU09VTkRfVE1TMzZYWCwKCgogICAgICAgIFNPVU5EX1RNUzUxMTAsCgoKICAg ICAgICBTT1VORF9UTVM1MjIwLAoKCiAgICAgICAgU09VTkRfVkxNNTAzMCwKCgogICAgICAgIFNP VU5EX0FEUENNLAoKCiAgICAgICAgU09VTkRfT0tJTTYyOTUsCgoKICAgICAgICBTT1VORF9NU001 MjA1LAoKCiAgICAgICAgU09VTkRfTVNNNTIzMiwKCgogICAgICAgIFNPVU5EX1VQRDc3NTksCgoK ICAgICAgICBTT1VORF9IQzU1NTE2LAoKCiAgICAgICAgU09VTkRfSzAwNTI4OSwKCgogICAgICAg IFNPVU5EX0swMDcyMzIsCgoKICAgICAgICBTT1VORF9LMDUxNjQ5LAoKCiAgICAgICAgU09VTkRf SzA1MzI2MCwKCgogICAgICAgIFNPVU5EX0swNTQ1MzksCgoKICAgICAgICBTT1VORF9TRUdBUENN LAoKCiAgICAgICAgU09VTkRfUkY1QzY4LAoKCiAgICAgICAgU09VTkRfQ0VNMzM5NCwKCgogICAg ICAgIFNPVU5EX0MxNDAsCgoKICAgICAgICBTT1VORF9RU09VTkQsCgoKICAgICAgICBTT1VORF9T QUExMDk5LAoKCiAgICAgICAgU09VTkRfSVJFTUdBMjAsCgoKICAgICAgICBTT1VORF9FUzU1MDUs CgoKICAgICAgICBTT1VORF9FUzU1MDYsCgoKICAgICAgICBTT1VORF9CU01UMjAwMCwKIyAzMzEg InNyYy9zbmRpbnRyZi5oIgogICAgICAgIFNPVU5EX0NPVU5UCn07CgoKCnN0cnVjdCBDdXN0b21T b3VuZF9pbnRlcmZhY2UKewogICAgICAgIGludCAoKnNoX3N0YXJ0KShjb25zdCBzdHJ1Y3QgTWFj aGluZVNvdW5kICptc291bmQpOwogICAgICAgIHZvaWQgKCpzaF9zdG9wKSh2b2lkKTsKICAgICAg ICB2b2lkICgqc2hfdXBkYXRlKSh2b2lkKTsKfTsKCgppbnQgc291bmRfc3RhcnQodm9pZCk7CnZv aWQgc291bmRfc3RvcCh2b2lkKTsKdm9pZCBzb3VuZF91cGRhdGUodm9pZCk7CnZvaWQgc291bmRf cmVzZXQodm9pZCk7CgoKY29uc3QgY2hhciAqc291bmRfbmFtZShjb25zdCBzdHJ1Y3QgTWFjaGlu ZVNvdW5kICptc291bmQpOwoKaW50IHNvdW5kX251bShjb25zdCBzdHJ1Y3QgTWFjaGluZVNvdW5k ICptc291bmQpOwoKaW50IHNvdW5kX2Nsb2NrKGNvbnN0IHN0cnVjdCBNYWNoaW5lU291bmQgKm1z b3VuZCk7CgppbnQgc291bmRfc2NhbGVidWZmZXJwb3MoaW50IHZhbHVlKTsKCgpkYXRhOF90IHNv dW5kbGF0Y2hfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRh dGE4X3Qgc291bmRsYXRjaDJfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9m ZnNldCk7CmRhdGE4X3Qgc291bmRsYXRjaDNfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg b2Zmc190IG9mZnNldCk7CmRhdGE4X3Qgc291bmRsYXRjaDRfcihfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgb2Zmc190IG9mZnNldCk7CmRhdGExNl90IHNvdW5kbGF0Y2hfd29yZF9yKF9fYXR0 cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3Vu dXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwpkYXRhMTZfdCBzb3VuZGxhdGNoMl93b3JkX3Io X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18o KF9fdW51c2VkX18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CmRhdGExNl90IHNvdW5kbGF0Y2gzX3dv cmRfcihfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKZGF0YTE2X3Qgc291bmRsYXRj aDRfd29yZF9yKF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0 dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwoKdm9pZCBzb3VuZGxh dGNoX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHNvdW5kbGF0Y2gyX3coX19h dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9f dW51c2VkX18pKSBkYXRhOF90IGRhdGEpOwp2b2lkIHNvdW5kbGF0Y2gzX3coX19hdHRyaWJ1dGVf XygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBkYXRhOF90IGRhdGEpOwp2b2lkIHNvdW5kbGF0Y2g0X3coX19hdHRyaWJ1dGVfXygoX191bnVz ZWRfXykpIG9mZnNfdCBvZmZzZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhOF90 IGRhdGEpOwp2b2lkIHNvdW5kbGF0Y2hfd29yZF93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgZGF0 YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IG1lbV9tYXNrKTsKdm9pZCBz b3VuZGxhdGNoMl93b3JkX3coX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIG9mZnNfdCBvZmZz ZXQsIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBkYXRhMTZfdCBkYXRhLCBfX2F0dHJpYnV0 ZV9fKChfX3VudXNlZF9fKSkgZGF0YTE2X3QgbWVtX21hc2spOwp2b2lkIHNvdW5kbGF0Y2gzX3dv cmRfdyhfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgb2Zmc190IG9mZnNldCwgX19hdHRyaWJ1 dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90IGRhdGEsIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBkYXRhMTZfdCBtZW1fbWFzayk7CnZvaWQgc291bmRsYXRjaDRfd29yZF93KF9fYXR0cmli dXRlX18oKF9fdW51c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNl ZF9fKSkgZGF0YTE2X3QgZGF0YSwgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIGRhdGExNl90 IG1lbV9tYXNrKTsKCnZvaWQgc291bmRsYXRjaF9jbGVhcl93KF9fYXR0cmlidXRlX18oKF9fdW51 c2VkX18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThf dCBkYXRhKTsKdm9pZCBzb3VuZGxhdGNoMl9jbGVhcl93KF9fYXR0cmlidXRlX18oKF9fdW51c2Vk X18pKSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBk YXRhKTsKdm9pZCBzb3VuZGxhdGNoM19jbGVhcl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSBvZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRh KTsKdm9pZCBzb3VuZGxhdGNoNF9jbGVhcl93KF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBv ZmZzX3Qgb2Zmc2V0LCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgZGF0YThfdCBkYXRhKTsK CgoKCgp2b2lkIHNvdW5kbGF0Y2hfc2V0Y2xlYXJlZHZhbHVlKGludCB2YWx1ZSk7CiMgNjUgInNy Yy9kcml2ZXIuaCIgMgoKCiMgMSAic3JjL3VzcmludHJmLmgiIDEKIyAxMiAic3JjL3VzcmludHJm LmgiCnN0cnVjdCBEaXNwbGF5VGV4dAp7CiAgICAgICAgY29uc3QgY2hhciAqdGV4dDsKICAgICAg ICBpbnQgY29sb3I7CiAgICAgICAgaW50IHg7CiAgICAgICAgaW50IHk7Cn07CiMgMjggInNyYy91 c3JpbnRyZi5oIgpzdHJ1Y3QgR2Z4RWxlbWVudCAqYnVpbGR1aWZvbnQodm9pZCk7CnZvaWQgcGlj a191aWZvbnRfY29sb3JzKHZvaWQpOwp2b2lkIGRpc3BsYXl0ZXh0KHN0cnVjdCBtYW1lX2JpdG1h cCAqYml0bWFwLGNvbnN0IHN0cnVjdCBEaXNwbGF5VGV4dCAqZHQpOwp2b2lkIHVpX3RleHQoc3Ry dWN0IG1hbWVfYml0bWFwICpiaXRtYXAsY29uc3QgY2hhciAqYnVmLGludCB4LGludCB5KTsKdm9p ZCB1aV9kcmF3Ym94KHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwLGludCBsZWZ0eCxpbnQgdG9w eSxpbnQgd2lkdGgsaW50IGhlaWdodCk7CnZvaWQgdWlfZGlzcGxheW1lc3NhZ2V3aW5kb3coc3Ry dWN0IG1hbWVfYml0bWFwICpiaXRtYXAsY29uc3QgY2hhciAqdGV4dCk7CnZvaWQgdWlfZGlzcGxh eW1lbnUoc3RydWN0IG1hbWVfYml0bWFwICpiaXRtYXAsY29uc3QgY2hhciAqKml0ZW1zLGNvbnN0 IGNoYXIgKipzdWJpdGVtcyxjaGFyICpmbGFnLGludCBzZWxlY3RlZCxpbnQgYXJyb3dpemVfc3Vi aXRlbSk7CmludCBzaG93Y29weXJpZ2h0KHN0cnVjdCBtYW1lX2JpdG1hcCAqYml0bWFwKTsKaW50 IHNob3dnYW1ld2FybmluZ3Moc3RydWN0IG1hbWVfYml0bWFwICpiaXRtYXApOwp2b2lkIHNldF91 aV92aXNhcmVhIChpbnQgeG1pbiwgaW50IHltaW4sIGludCB4bWF4LCBpbnQgeW1heCk7Cgp2b2lk IGluaXRfdXNlcl9pbnRlcmZhY2Uodm9pZCk7CmludCBoYW5kbGVfdXNlcl9pbnRlcmZhY2Uoc3Ry dWN0IG1hbWVfYml0bWFwICpiaXRtYXApOwoKaW50IG9uc2NyZF9hY3RpdmUodm9pZCk7CmludCBz ZXR1cF9hY3RpdmUodm9pZCk7Cgp2b2lkIHN3aXRjaF91aV9vcmllbnRhdGlvbihzdHJ1Y3QgbWFt ZV9iaXRtYXAgKmJpdG1hcCk7CnZvaWQgc3dpdGNoX3RydWVfb3JpZW50YXRpb24oc3RydWN0IG1h bWVfYml0bWFwICpiaXRtYXApOwoKdm9pZCB1c3JpbnRmX3Nob3dtZXNzYWdlKGNvbnN0IGNoYXIg KnRleHQsLi4uKTsKdm9pZCB1c3JpbnRmX3Nob3dtZXNzYWdlX3NlY3MoaW50IHNlY29uZHMsIGNv bnN0IGNoYXIgKnRleHQsLi4uKTsKIyA2OCAic3JjL2RyaXZlci5oIiAyCiMgMSAic3JjL2NoZWF0 LmgiIDEKIyAxMCAic3JjL2NoZWF0LmgiCmV4dGVybiBpbnQgaGVfZGlkX2NoZWF0OwoKdm9pZCBJ bml0Q2hlYXQodm9pZCk7CnZvaWQgU3RvcENoZWF0KHZvaWQpOwoKaW50IGNoZWF0X21lbnUoc3Ry dWN0IG1hbWVfYml0bWFwICpiaXRtYXAsIGludCBzZWxlY3Rpb24pOwp2b2lkIERvQ2hlYXQoc3Ry dWN0IG1hbWVfYml0bWFwICpiaXRtYXApOwoKdm9pZCBEaXNwbGF5V2F0Y2hlcyhzdHJ1Y3QgbWFt ZV9iaXRtYXAgKiBiaXRtYXApOwojIDY5ICJzcmMvZHJpdmVyLmgiIDIKIyAxICJzcmMvdGlsZW1h cC5oIiAxCgoKCgoKc3RydWN0IHRpbGVtYXA7CiMgNDIgInNyYy90aWxlbWFwLmgiCmV4dGVybiBz dHJ1Y3QgdGlsZV9pbmZvCnsKCgoKCgoKICAgICAgICBjb25zdCBVSU5UOCAqcGVuX2RhdGE7CiAg ICAgICAgY29uc3QgcGVuX3QgKnBhbF9kYXRhOwogICAgICAgIFVJTlQzMiBmbGFnczsKICAgICAg ICBpbnQgc2tpcDsKICAgICAgICBVSU5UMzIgdGlsZV9udW1iZXI7CiAgICAgICAgVUlOVDMyIHBl bl91c2FnZTsKICAgICAgICBVSU5UMzIgcHJpb3JpdHk7CiAgICAgICAgVUlOVDggKm1hc2tfZGF0 YTsKfSB0aWxlX2luZm87CiMgOTUgInNyYy90aWxlbWFwLmgiCmV4dGVybiBzdHJ1Y3QgbWFtZV9i aXRtYXAgKnByaW9yaXR5X2JpdG1hcDsKCgppbnQgdGlsZW1hcF9pbml0KCB2b2lkICk7CnZvaWQg dGlsZW1hcF9jbG9zZSggdm9pZCApOwp2b2lkIHRpbGVtYXBfZGlzcG9zZSggc3RydWN0IHRpbGVt YXAgKnRpbGVtYXAgKTsKCnN0cnVjdCB0aWxlbWFwICp0aWxlbWFwX2NyZWF0ZSgKICAgICAgICB2 b2lkICgqdGlsZV9nZXRfaW5mbykoIGludCBtZW1vcnlfb2Zmc2V0ICksCiAgICAgICAgVUlOVDMy ICgqZ2V0X21lbW9yeV9vZmZzZXQpKCBVSU5UMzIgY29sLCBVSU5UMzIgcm93LCBVSU5UMzIgbnVt X2NvbHMsIFVJTlQzMiBudW1fcm93cyApLAogICAgICAgIGludCB0eXBlLAogICAgICAgIGludCB0 aWxlX3dpZHRoLCBpbnQgdGlsZV9oZWlnaHQsCiAgICAgICAgaW50IG51bV9jb2xzLCBpbnQgbnVt X3Jvd3MgKTsKCnZvaWQgdGlsZW1hcF9zZXRfdHJhbnNwYXJlbnRfcGVuKCBzdHJ1Y3QgdGlsZW1h cCAqdGlsZW1hcCwgaW50IHBlbiApOwp2b2lkIHRpbGVtYXBfc2V0X3RyYW5zbWFzayggc3RydWN0 IHRpbGVtYXAgKnRpbGVtYXAsIGludCB3aGljaCwgVUlOVDMyIGZnbWFzaywgVUlOVDMyIGJnbWFz ayApOwp2b2lkIHRpbGVtYXBfc2V0X2RlcHRoKCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwgaW50 IHRpbGVfZGVwdGgsIGludCB0aWxlX2dyYW51bGFyaXR5ICk7Cgp2b2lkIHRpbGVtYXBfbWFya190 aWxlX2RpcnR5KCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwgaW50IG1lbW9yeV9vZmZzZXQgKTsK dm9pZCB0aWxlbWFwX21hcmtfYWxsX3RpbGVzX2RpcnR5KCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1h cCApOwp2b2lkIHRpbGVtYXBfbWFya19nZnhkYXRhX2RpcnR5KCBzdHJ1Y3QgdGlsZW1hcCAqdGls ZW1hcCwgVUlOVDggKmRpcnR5X2FycmF5ICk7Cgp2b2lkIHRpbGVtYXBfc2V0X3Njcm9sbF9yb3dz KCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwgaW50IHNjcm9sbF9yb3dzICk7CnZvaWQgdGlsZW1h cF9zZXRfc2Nyb2xsZHgoIHN0cnVjdCB0aWxlbWFwICp0aWxlbWFwLCBpbnQgZHgsIGludCBkeF9p Zl9mbGlwcGVkICk7CnZvaWQgdGlsZW1hcF9zZXRfc2Nyb2xseCggc3RydWN0IHRpbGVtYXAgKnRp bGVtYXAsIGludCByb3csIGludCB2YWx1ZSApOwoKdm9pZCB0aWxlbWFwX3NldF9zY3JvbGxfY29s cyggc3RydWN0IHRpbGVtYXAgKnRpbGVtYXAsIGludCBzY3JvbGxfY29scyApOwp2b2lkIHRpbGVt YXBfc2V0X3Njcm9sbGR5KCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwgaW50IGR5LCBpbnQgZHlf aWZfZmxpcHBlZCApOwp2b2lkIHRpbGVtYXBfc2V0X3Njcm9sbHkoIHN0cnVjdCB0aWxlbWFwICp0 aWxlbWFwLCBpbnQgY29sLCBpbnQgdmFsdWUgKTsKCnZvaWQgdGlsZW1hcF9zZXRfcGFsZXR0ZV9v ZmZzZXQoIHN0cnVjdCB0aWxlbWFwICp0aWxlbWFwLCBpbnQgb2Zmc2V0ICk7CgoKCnZvaWQgdGls ZW1hcF9zZXRfZmxpcCggc3RydWN0IHRpbGVtYXAgKnRpbGVtYXAsIGludCBhdHRyaWJ1dGVzICk7 CnZvaWQgdGlsZW1hcF9zZXRfZW5hYmxlKCBzdHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwgaW50IGVu YWJsZSApOwoKdm9pZCB0aWxlbWFwX2RyYXcoIHN0cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCwgY29u c3Qgc3RydWN0IHJlY3RhbmdsZSAqY2xpcHJlY3QsIHN0cnVjdCB0aWxlbWFwICp0aWxlbWFwLCBV SU5UMzIgZmxhZ3MsIFVJTlQzMiBwcmlvcml0eSApOwoKdm9pZCB0aWxlbWFwX2RyYXdfcm96KHN0 cnVjdCBtYW1lX2JpdG1hcCAqZGVzdCxjb25zdCBzdHJ1Y3QgcmVjdGFuZ2xlICpjbGlwcmVjdCxz dHJ1Y3QgdGlsZW1hcCAqdGlsZW1hcCwKICAgICAgICAgICAgICAgIFVJTlQzMiBzdGFydHgsVUlO VDMyIHN0YXJ0eSxpbnQgaW5jeHgsaW50IGluY3h5LGludCBpbmN5eCxpbnQgaW5jeXksCiAgICAg ICAgICAgICAgICBpbnQgd3JhcGFyb3VuZCwKICAgICAgICAgICAgICAgIFVJTlQzMiBmbGFncywg VUlOVDMyIHByaW9yaXR5ICk7CiMgMTQ5ICJzcmMvdGlsZW1hcC5oIgpzdHJ1Y3QgbWFtZV9iaXRt YXAgKnRpbGVtYXBfZ2V0X3BpeG1hcCggc3RydWN0IHRpbGVtYXAgKiB0aWxlbWFwICk7CnN0cnVj dCBtYW1lX2JpdG1hcCAqdGlsZW1hcF9nZXRfdHJhbnNwYXJlbmN5X2JpdG1hcCggc3RydWN0IHRp bGVtYXAgKiB0aWxlbWFwICk7CgoKClVJTlQzMiB0aWxlbWFwX3NjYW5fY29scyggVUlOVDMyIGNv bCwgVUlOVDMyIHJvdywgVUlOVDMyIG51bV9jb2xzLCBVSU5UMzIgbnVtX3Jvd3MgKTsKVUlOVDMy IHRpbGVtYXBfc2Nhbl9yb3dzKCBVSU5UMzIgY29sLCBVSU5UMzIgcm93LCBVSU5UMzIgbnVtX2Nv bHMsIFVJTlQzMiBudW1fcm93cyApOwoKClVJTlQzMiB0aWxlbWFwX2NvdW50KCB2b2lkICk7CnZv aWQgdGlsZW1hcF9uYl9zaXplKCBVSU5UMzIgbnVtYmVyLCBVSU5UMzIgKndpZHRoLCBVSU5UMzIg KmhlaWdodCApOwp2b2lkIHRpbGVtYXBfbmJfZHJhdyggc3RydWN0IG1hbWVfYml0bWFwICpkZXN0 LCBVSU5UMzIgbnVtYmVyLCBVSU5UMzIgc2Nyb2xseCwgVUlOVDMyIHNjcm9sbHkgKTsKIyA3MCAi c3JjL2RyaXZlci5oIiAyCiMgMSAic3JjL3Byb2ZpbGVyLmgiIDEKCgoKCmVudW0gewogICAgICAg IFBST0ZJTEVSX0VORCA9IC0xLAogICAgICAgIFBST0ZJTEVSX0NQVTEgPSAwLAogICAgICAgIFBS T0ZJTEVSX0NQVTIsCiAgICAgICAgUFJPRklMRVJfQ1BVMywKICAgICAgICBQUk9GSUxFUl9DUFU0 LAogICAgICAgIFBST0ZJTEVSX0NQVTUsCiAgICAgICAgUFJPRklMRVJfQ1BVNiwKICAgICAgICBQ Uk9GSUxFUl9DUFU3LAogICAgICAgIFBST0ZJTEVSX0NQVTgsCiAgICAgICAgUFJPRklMRVJfTUVN UkVBRCwKICAgICAgICBQUk9GSUxFUl9NRU1XUklURSwKICAgICAgICBQUk9GSUxFUl9WSURFTywK ICAgICAgICBQUk9GSUxFUl9EUkFXR0ZYLAogICAgICAgIFBST0ZJTEVSX0NPUFlCSVRNQVAsCiAg ICAgICAgUFJPRklMRVJfVElMRU1BUF9EUkFXLAogICAgICAgIFBST0ZJTEVSX1RJTEVNQVBfRFJB V19ST1osCiAgICAgICAgUFJPRklMRVJfVElMRU1BUF9VUERBVEUsCiAgICAgICAgUFJPRklMRVJf QkxJVCwKICAgICAgICBQUk9GSUxFUl9TT1VORCwKICAgICAgICBQUk9GSUxFUl9NSVhFUiwKICAg ICAgICBQUk9GSUxFUl9USU1FUl9DQUxMQkFDSywKICAgICAgICBQUk9GSUxFUl9ISVNDT1JFLAog ICAgICAgIFBST0ZJTEVSX0lOUFVULAogICAgICAgIFBST0ZJTEVSX0VYVFJBLAoKCgogICAgICAg IFBST0ZJTEVSX1VTRVIxLAogICAgICAgIFBST0ZJTEVSX1VTRVIyLAogICAgICAgIFBST0ZJTEVS X1VTRVIzLAogICAgICAgIFBST0ZJTEVSX1VTRVI0LAoKICAgICAgICBQUk9GSUxFUl9QUk9GSUxF UiwKICAgICAgICBQUk9GSUxFUl9JRExFLAogICAgICAgIFBST0ZJTEVSX1RPVEFMCn07CiMgNjAg InNyYy9wcm9maWxlci5oIgp2b2lkIHByb2ZpbGVyX19tYXJrKGludCB0eXBlKTsKCgp2b2lkIHBy b2ZpbGVyX3N0YXJ0KHZvaWQpOwp2b2lkIHByb2ZpbGVyX3N0b3Aodm9pZCk7CnZvaWQgcHJvZmls ZXJfc2hvdyhzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCk7CiMgNzEgInNyYy9kcml2ZXIuaCIg MgojIDI1NyAic3JjL2RyaXZlci5oIgpzdHJ1Y3QgTWFjaGluZUNQVSAqbWFjaGluZV9hZGRfY3B1 KHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVEcml2ZXIgKm1hY2hpbmUsIGNvbnN0IGNoYXIgKnRhZywg aW50IHR5cGUsIGludCBjcHVjbG9jayk7CnN0cnVjdCBNYWNoaW5lQ1BVICptYWNoaW5lX2ZpbmRf Y3B1KHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVEcml2ZXIgKm1hY2hpbmUsIGNvbnN0IGNoYXIgKnRh Zyk7CnZvaWQgbWFjaGluZV9yZW1vdmVfY3B1KHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVEcml2ZXIg Km1hY2hpbmUsIGNvbnN0IGNoYXIgKnRhZyk7CgpzdHJ1Y3QgTWFjaGluZVNvdW5kICptYWNoaW5l X2FkZF9zb3VuZChzdHJ1Y3QgSW50ZXJuYWxNYWNoaW5lRHJpdmVyICptYWNoaW5lLCBjb25zdCBj aGFyICp0YWcsIGludCB0eXBlLCB2b2lkICpzbmRpbnRmKTsKc3RydWN0IE1hY2hpbmVTb3VuZCAq bWFjaGluZV9maW5kX3NvdW5kKHN0cnVjdCBJbnRlcm5hbE1hY2hpbmVEcml2ZXIgKm1hY2hpbmUs IGNvbnN0IGNoYXIgKnRhZyk7CnZvaWQgbWFjaGluZV9yZW1vdmVfc291bmQoc3RydWN0IEludGVy bmFsTWFjaGluZURyaXZlciAqbWFjaGluZSwgY29uc3QgY2hhciAqdGFnKTsKIyAyNzkgInNyYy9k cml2ZXIuaCIKc3RydWN0IEludGVybmFsTWFjaGluZURyaXZlcgp7CiAgICAgICAgc3RydWN0IE1h Y2hpbmVDUFUgY3B1WzhdOwogICAgICAgIGZsb2F0IGZyYW1lc19wZXJfc2Vjb25kOwogICAgICAg IGludCB2YmxhbmtfZHVyYXRpb247CiAgICAgICAgVUlOVDMyIGNwdV9zbGljZXNfcGVyX2ZyYW1l OwoKICAgICAgICB2b2lkICgqbWFjaGluZV9pbml0KSh2b2lkKTsKICAgICAgICB2b2lkICgqbWFj aGluZV9zdG9wKSh2b2lkKTsKICAgICAgICB2b2lkICgqbnZyYW1faGFuZGxlcikodm9pZCAqZmls ZSxpbnQgcmVhZF9vcl93cml0ZSk7CgogICAgICAgIFVJTlQzMiB2aWRlb19hdHRyaWJ1dGVzOwog ICAgICAgIGludCBzY3JlZW5fd2lkdGgsc2NyZWVuX2hlaWdodDsKICAgICAgICBzdHJ1Y3QgcmVj dGFuZ2xlIGRlZmF1bHRfdmlzaWJsZV9hcmVhOwogICAgICAgIHN0cnVjdCBHZnhEZWNvZGVJbmZv ICpnZnhkZWNvZGVpbmZvOwogICAgICAgIFVJTlQzMiB0b3RhbF9jb2xvcnM7CiAgICAgICAgVUlO VDMyIGNvbG9yX3RhYmxlX2xlbjsKCiAgICAgICAgdm9pZCAoKmluaXRfcGFsZXR0ZSkodW5zaWdu ZWQgc2hvcnQgKmNvbG9ydGFibGUsY29uc3QgdW5zaWduZWQgY2hhciAqY29sb3JfcHJvbSk7CiAg ICAgICAgaW50ICgqdmlkZW9fc3RhcnQpKHZvaWQpOwogICAgICAgIHZvaWQgKCp2aWRlb19zdG9w KSh2b2lkKTsKICAgICAgICB2b2lkICgqdmlkZW9fZW9mKSh2b2lkKTsKICAgICAgICB2b2lkICgq dmlkZW9fdXBkYXRlKShzdHJ1Y3QgbWFtZV9iaXRtYXAgKmJpdG1hcCxjb25zdCBzdHJ1Y3QgcmVj dGFuZ2xlICpjbGlwcmVjdCk7CgogICAgICAgIFVJTlQzMiBzb3VuZF9hdHRyaWJ1dGVzOwogICAg ICAgIHN0cnVjdCBNYWNoaW5lU291bmQgc291bmRbNV07Cn07CiMgMzk1ICJzcmMvZHJpdmVyLmgi CnN0cnVjdCBHYW1lRHJpdmVyCnsKICAgICAgICBjb25zdCBjaGFyICpzb3VyY2VfZmlsZTsKICAg ICAgICBjb25zdCBzdHJ1Y3QgR2FtZURyaXZlciAqY2xvbmVfb2Y7CgogICAgICAgIGNvbnN0IGNo YXIgKm5hbWU7CiAgICAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb247CiAgICAgICAgY29uc3Qg Y2hhciAqeWVhcjsKICAgICAgICBjb25zdCBjaGFyICptYW51ZmFjdHVyZXI7CiAgICAgICAgdm9p ZCAoKmRydikoc3RydWN0IEludGVybmFsTWFjaGluZURyaXZlciAqKTsKICAgICAgICBjb25zdCBz dHJ1Y3QgSW5wdXRQb3J0VGlueSAqaW5wdXRfcG9ydHM7CiAgICAgICAgdm9pZCAoKmRyaXZlcl9p bml0KSh2b2lkKTsKCgoKICAgICAgICBjb25zdCBzdHJ1Y3QgUm9tTW9kdWxlICpyb207CgoKCgog ICAgICAgIFVJTlQzMiBmbGFnczsKfTsKIyA1MDkgInNyYy9kcml2ZXIuaCIKZXh0ZXJuIGNvbnN0 IHN0cnVjdCBHYW1lRHJpdmVyICpkcml2ZXJzW107CiMgNTkgInNyYy9jcHUvaTgwODUvaTgwODUu YyIgMgojIDEgInNyYy9zdGF0ZS5oIiAxCgoKCgoKCnZvaWQgc3RhdGVfc2F2ZV9yZXNldCh2b2lk KTsKCgp2b2lkIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDggKGNvbnN0IGNoYXIgKm1vZHVsZSwg aW50IGluc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgVUlOVDggKnZhbCwgdW5zaWdu ZWQgc2l6ZSk7CnZvaWQgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9JTlQ4IChjb25zdCBjaGFyICptb2R1 bGUsIGludCBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIElOVDggKnZhbCwgdW5z aWduZWQgc2l6ZSk7CnZvaWQgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMTYoY29uc3QgY2hhciAq bW9kdWxlLCBpbnQgaW5zdGFuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBVSU5UMTYgKnZh bCwgdW5zaWduZWQgc2l6ZSk7CnZvaWQgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9JTlQxNiAoY29uc3Qg Y2hhciAqbW9kdWxlLCBpbnQgaW5zdGFuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBJTlQx NiAqdmFsLCB1bnNpZ25lZCBzaXplKTsKdm9pZCBzdGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQzMihj b25zdCBjaGFyICptb2R1bGUsIGludCBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUs IFVJTlQzMiAqdmFsLCB1bnNpZ25lZCBzaXplKTsKdm9pZCBzdGF0ZV9zYXZlX3JlZ2lzdGVyX0lO VDMyIChjb25zdCBjaGFyICptb2R1bGUsIGludCBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUsIElOVDMyICp2YWwsIHVuc2lnbmVkIHNpemUpOwp2b2lkIHN0YXRlX3NhdmVfcmVnaXN0 ZXJfZG91YmxlKGNvbnN0IGNoYXIgKm1vZHVsZSwgaW50IGluc3RhbmNlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZSwgZG91YmxlICp2YWwsIHVuc2lnbmVkIHNpemUpOwp2b2lkIHN0YXRlX3NhdmVf cmVnaXN0ZXJfaW50IChjb25zdCBjaGFyICptb2R1bGUsIGludCBpbnN0YW5jZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUsIGludCAqdmFsKTsKCgp2b2lkIHN0YXRlX3NhdmVfcmVnaXN0ZXJfZnVu Y19wcmVzYXZlKHZvaWQgKCpmdW5jKSh2b2lkKSk7CnZvaWQgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9m dW5jX3Bvc3Rsb2FkKHZvaWQgKCpmdW5jKSh2b2lkKSk7CgoKCnZvaWQgc3RhdGVfc2F2ZV9zYXZl X2JlZ2luKHZvaWQgKmZpbGUpOwppbnQgc3RhdGVfc2F2ZV9sb2FkX2JlZ2luKHZvaWQgKmZpbGUp OwoKdm9pZCBzdGF0ZV9zYXZlX3NldF9jdXJyZW50X3RhZyhpbnQgdGFnKTsKdm9pZCBzdGF0ZV9z YXZlX3NhdmVfY29udGludWUodm9pZCk7CnZvaWQgc3RhdGVfc2F2ZV9sb2FkX2NvbnRpbnVlKHZv aWQpOwoKdm9pZCBzdGF0ZV9zYXZlX3NhdmVfZmluaXNoKHZvaWQpOwp2b2lkIHN0YXRlX3NhdmVf bG9hZF9maW5pc2godm9pZCk7CgoKdm9pZCBzdGF0ZV9zYXZlX2R1bXBfcmVnaXN0cnkodm9pZCk7 CiMgNjAgInNyYy9jcHUvaTgwODUvaTgwODUuYyIgMgoKCiMgMSAic3JjL2NwdS9pODA4NS9pODA4 NS5oIiAxCgoKCgoKZW51bSB7CiAgICAgICAgSTgwODVfUEM9MSwgSTgwODVfU1AsIEk4MDg1X0FG ICxJODA4NV9CQywgSTgwODVfREUsIEk4MDg1X0hMLAogICAgICAgIEk4MDg1X0hBTFQsIEk4MDg1 X0lNLCBJODA4NV9JUkVRLCBJODA4NV9JU1JWLCBJODA4NV9WRUNUT1IsCiAgICAgICAgSTgwODVf VFJBUF9TVEFURSwgSTgwODVfSU5UUl9TVEFURSwKICAgICAgICBJODA4NV9SU1Q1NV9TVEFURSwg STgwODVfUlNUNjVfU1RBVEUsIEk4MDg1X1JTVDc1X1NUQVRFfTsKCgoKCgoKZXh0ZXJuIGludCBp ODA4NV9JQ291bnQ7CgpleHRlcm4gdm9pZCBpODA4NV9zZXRfU0lEKGludCBzdGF0ZSk7CmV4dGVy biB2b2lkIGk4MDg1X3NldF9TT0RfY2FsbGJhY2sodm9pZCAoKmNhbGxiYWNrKShpbnQgc3RhdGUp KTsKZXh0ZXJuIHZvaWQgaTgwODVfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgaTgwODVfcmVzZXQo dm9pZCAqcGFyYW0pOwpleHRlcm4gdm9pZCBpODA4NV9leGl0KHZvaWQpOwpleHRlcm4gaW50IGk4 MDg1X2V4ZWN1dGUoaW50IGN5Y2xlcyk7CmV4dGVybiB1bnNpZ25lZCBpODA4NV9nZXRfY29udGV4 dCh2b2lkICpkc3QpOwpleHRlcm4gdm9pZCBpODA4NV9zZXRfY29udGV4dCh2b2lkICpzcmMpOwpl eHRlcm4gdW5zaWduZWQgaTgwODVfZ2V0X3JlZyhpbnQgcmVnbnVtKTsKZXh0ZXJuIHZvaWQgaTgw ODVfc2V0X3JlZyhpbnQgcmVnbnVtLCB1bnNpZ25lZCB2YWwpOwpleHRlcm4gdm9pZCBpODA4NV9z ZXRfaXJxX2xpbmUoaW50IGlycWxpbmUsIGludCBzdGF0ZSk7CmV4dGVybiB2b2lkIGk4MDg1X3Nl dF9pcnFfY2FsbGJhY2soaW50ICgqY2FsbGJhY2spKGludCBpcnFsaW5lKSk7CmV4dGVybiBjb25z dCBjaGFyICppODA4NV9pbmZvKHZvaWQgKmNvbnRleHQsIGludCByZWdudW0pOwpleHRlcm4gdW5z aWduZWQgaTgwODVfZGFzbShjaGFyICpidWZmZXIsIHVuc2lnbmVkIHBjKTsKIyA2MCAic3JjL2Nw dS9pODA4NS9pODA4NS5oIgpleHRlcm4gdm9pZCBpODA4MF9pbml0KHZvaWQpOwpleHRlcm4gdm9p ZCBpODA4MF9yZXNldCh2b2lkICpwYXJhbSk7CmV4dGVybiB2b2lkIGk4MDgwX2V4aXQodm9pZCk7 CmV4dGVybiBpbnQgaTgwODBfZXhlY3V0ZShpbnQgY3ljbGVzKTsKZXh0ZXJuIHVuc2lnbmVkIGk4 MDgwX2dldF9jb250ZXh0KHZvaWQgKmRzdCk7CmV4dGVybiB2b2lkIGk4MDgwX3NldF9jb250ZXh0 KHZvaWQgKnNyYyk7CmV4dGVybiB1bnNpZ25lZCBpODA4MF9nZXRfcmVnKGludCByZWdudW0pOwpl eHRlcm4gdm9pZCBpODA4MF9zZXRfcmVnKGludCByZWdudW0sIHVuc2lnbmVkIHZhbCk7CmV4dGVy biB2b2lkIGk4MDgwX3NldF9pcnFfbGluZShpbnQgaXJxbGluZSwgaW50IHN0YXRlKTsKZXh0ZXJu IHZvaWQgaTgwODBfc2V0X2lycV9jYWxsYmFjayhpbnQgKCpjYWxsYmFjaykoaW50IGlycWxpbmUp KTsKZXh0ZXJuIGNvbnN0IGNoYXIgKmk4MDgwX2luZm8odm9pZCAqY29udGV4dCwgaW50IHJlZ251 bSk7CmV4dGVybiB1bnNpZ25lZCBpODA4MF9kYXNtKGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgcGMp OwojIDYzICJzcmMvY3B1L2k4MDg1L2k4MDg1LmMiIDIKIyAxICJzcmMvY3B1L2k4MDg1L2k4MDg1 Y3B1LmgiIDEKIyA2NCAic3JjL2NwdS9pODA4NS9pODA4NS5jIiAyCiMgMSAic3JjL2NwdS9pODA4 NS9pODA4NWRhYS5oIiAxCnN0YXRpYyBVSU5UMTYgREFBWzIwNDhdID0gewogICgweDAwPDw4KSAr MHg0MCArMHgwNCAsCiAgKDB4MDE8PDgpICwKICAoMHgwMjw8OCkgLAogICgweDAzPDw4KSArMHgw NCAsCiAgKDB4MDQ8PDgpICwKICAoMHgwNTw8OCkgKzB4MDQgLAogICgweDA2PDw4KSArMHgwNCAs CiAgKDB4MDc8PDgpICwKICAoMHgwODw8OCkgKzB4MDggLAogICgweDA5PDw4KSArMHgwOCArMHgw NCAsCiAgKDB4MTA8PDgpICsweDEwICwKICAoMHgxMTw8OCkgKzB4MTAgKzB4MDQgLAogICgweDEy PDw4KSArMHgxMCArMHgwNCAsCiAgKDB4MTM8PDgpICsweDEwICwKICAoMHgxNDw8OCkgKzB4MTAg KzB4MDQgLAogICgweDE1PDw4KSArMHgxMCAsCiAgKDB4MTA8PDgpICwKICAoMHgxMTw8OCkgKzB4 MDQgLAogICgweDEyPDw4KSArMHgwNCAsCiAgKDB4MTM8PDgpICwKICAoMHgxNDw8OCkgKzB4MDQg LAogICgweDE1PDw4KSAsCiAgKDB4MTY8PDgpICwKICAoMHgxNzw8OCkgKzB4MDQgLAogICgweDE4 PDw4KSArMHgwOCArMHgwNCAsCiAgKDB4MTk8PDgpICsweDA4ICwKICAoMHgyMDw8OCkgKzB4MjAg KzB4MTAgLAogICgweDIxPDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4MjI8PDgpICsweDIw ICsweDEwICsweDA0ICwKICAoMHgyMzw8OCkgKzB4MjAgKzB4MTAgLAogICgweDI0PDw4KSArMHgy MCArMHgxMCArMHgwNCAsCiAgKDB4MjU8PDgpICsweDIwICsweDEwICwKICAoMHgyMDw8OCkgKzB4 MjAgLAogICgweDIxPDw4KSArMHgyMCArMHgwNCAsCiAgKDB4MjI8PDgpICsweDIwICsweDA0ICwK ICAoMHgyMzw8OCkgKzB4MjAgLAogICgweDI0PDw4KSArMHgyMCArMHgwNCAsCiAgKDB4MjU8PDgp ICsweDIwICwKICAoMHgyNjw8OCkgKzB4MjAgLAogICgweDI3PDw4KSArMHgyMCArMHgwNCAsCiAg KDB4Mjg8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHgyOTw8OCkgKzB4MjAgKzB4MDggLAog ICgweDMwPDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4MzE8PDgpICsweDIwICsweDEwICwK ICAoMHgzMjw8OCkgKzB4MjAgKzB4MTAgLAogICgweDMzPDw4KSArMHgyMCArMHgxMCArMHgwNCAs CiAgKDB4MzQ8PDgpICsweDIwICsweDEwICwKICAoMHgzNTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQg LAogICgweDMwPDw4KSArMHgyMCArMHgwNCAsCiAgKDB4MzE8PDgpICsweDIwICwKICAoMHgzMjw8 OCkgKzB4MjAgLAogICgweDMzPDw4KSArMHgyMCArMHgwNCAsCiAgKDB4MzQ8PDgpICsweDIwICwK ICAoMHgzNTw8OCkgKzB4MjAgKzB4MDQgLAogICgweDM2PDw4KSArMHgyMCArMHgwNCAsCiAgKDB4 Mzc8PDgpICsweDIwICwKICAoMHgzODw8OCkgKzB4MjAgKzB4MDggLAogICgweDM5PDw4KSArMHgy MCArMHgwOCArMHgwNCAsCiAgKDB4NDA8PDgpICsweDEwICwKICAoMHg0MTw8OCkgKzB4MTAgKzB4 MDQgLAogICgweDQyPDw4KSArMHgxMCArMHgwNCAsCiAgKDB4NDM8PDgpICsweDEwICwKICAoMHg0 NDw8OCkgKzB4MTAgKzB4MDQgLAogICgweDQ1PDw4KSArMHgxMCAsCiAgKDB4NDA8PDgpICwKICAo MHg0MTw8OCkgKzB4MDQgLAogICgweDQyPDw4KSArMHgwNCAsCiAgKDB4NDM8PDgpICwKICAoMHg0 NDw8OCkgKzB4MDQgLAogICgweDQ1PDw4KSAsCiAgKDB4NDY8PDgpICwKICAoMHg0Nzw8OCkgKzB4 MDQgLAogICgweDQ4PDw4KSArMHgwOCArMHgwNCAsCiAgKDB4NDk8PDgpICsweDA4ICwKICAoMHg1 MDw8OCkgKzB4MTAgKzB4MDQgLAogICgweDUxPDw4KSArMHgxMCAsCiAgKDB4NTI8PDgpICsweDEw ICwKICAoMHg1Mzw8OCkgKzB4MTAgKzB4MDQgLAogICgweDU0PDw4KSArMHgxMCAsCiAgKDB4NTU8 PDgpICsweDEwICsweDA0ICwKICAoMHg1MDw8OCkgKzB4MDQgLAogICgweDUxPDw4KSAsCiAgKDB4 NTI8PDgpICwKICAoMHg1Mzw8OCkgKzB4MDQgLAogICgweDU0PDw4KSAsCiAgKDB4NTU8PDgpICsw eDA0ICwKICAoMHg1Njw8OCkgKzB4MDQgLAogICgweDU3PDw4KSAsCiAgKDB4NTg8PDgpICsweDA4 ICwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQgLAogICgweDYwPDw4KSArMHgyMCArMHgxMCArMHgw NCAsCiAgKDB4NjE8PDgpICsweDIwICsweDEwICwKICAoMHg2Mjw8OCkgKzB4MjAgKzB4MTAgLAog ICgweDYzPDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4NjQ8PDgpICsweDIwICsweDEwICwK ICAoMHg2NTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgLAogICgweDYwPDw4KSArMHgyMCArMHgwNCAs CiAgKDB4NjE8PDgpICsweDIwICwKICAoMHg2Mjw8OCkgKzB4MjAgLAogICgweDYzPDw4KSArMHgy MCArMHgwNCAsCiAgKDB4NjQ8PDgpICsweDIwICwKICAoMHg2NTw8OCkgKzB4MjAgKzB4MDQgLAog ICgweDY2PDw4KSArMHgyMCArMHgwNCAsCiAgKDB4Njc8PDgpICsweDIwICwKICAoMHg2ODw8OCkg KzB4MjAgKzB4MDggLAogICgweDY5PDw4KSArMHgyMCArMHgwOCArMHgwNCAsCiAgKDB4NzA8PDgp ICsweDIwICsweDEwICwKICAoMHg3MTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgLAogICgweDcyPDw4 KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4NzM8PDgpICsweDIwICsweDEwICwKICAoMHg3NDw8 OCkgKzB4MjAgKzB4MTAgKzB4MDQgLAogICgweDc1PDw4KSArMHgyMCArMHgxMCAsCiAgKDB4NzA8 PDgpICsweDIwICwKICAoMHg3MTw8OCkgKzB4MjAgKzB4MDQgLAogICgweDcyPDw4KSArMHgyMCAr MHgwNCAsCiAgKDB4NzM8PDgpICsweDIwICwKICAoMHg3NDw8OCkgKzB4MjAgKzB4MDQgLAogICgw eDc1PDw4KSArMHgyMCAsCiAgKDB4NzY8PDgpICsweDIwICwKICAoMHg3Nzw8OCkgKzB4MjAgKzB4 MDQgLAogICgweDc4PDw4KSArMHgyMCArMHgwOCArMHgwNCAsCiAgKDB4Nzk8PDgpICsweDIwICsw eDA4ICwKICAoMHg4MDw8OCkrMHg4MCArMHgxMCAsCiAgKDB4ODE8PDgpKzB4ODAgKzB4MTAgKzB4 MDQgLAogICgweDgyPDw4KSsweDgwICsweDEwICsweDA0ICwKICAoMHg4Mzw8OCkrMHg4MCArMHgx MCAsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MTAgKzB4MDQgLAogICgweDg1PDw4KSsweDgwICsweDEw ICwKICAoMHg4MDw8OCkrMHg4MCAsCiAgKDB4ODE8PDgpKzB4ODAgKzB4MDQgLAogICgweDgyPDw4 KSsweDgwICsweDA0ICwKICAoMHg4Mzw8OCkrMHg4MCAsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MDQg LAogICgweDg1PDw4KSsweDgwICwKICAoMHg4Njw8OCkrMHg4MCAsCiAgKDB4ODc8PDgpKzB4ODAg KzB4MDQgLAogICgweDg4PDw4KSsweDgwICsweDA4ICsweDA0ICwKICAoMHg4OTw8OCkrMHg4MCAr MHgwOCAsCiAgKDB4OTA8PDgpKzB4ODAgKzB4MTAgKzB4MDQgLAogICgweDkxPDw4KSsweDgwICsw eDEwICwKICAoMHg5Mjw8OCkrMHg4MCArMHgxMCAsCiAgKDB4OTM8PDgpKzB4ODAgKzB4MTAgKzB4 MDQgLAogICgweDk0PDw4KSsweDgwICsweDEwICwKICAoMHg5NTw8OCkrMHg4MCArMHgxMCArMHgw NCAsCiAgKDB4OTA8PDgpKzB4ODAgKzB4MDQgLAogICgweDkxPDw4KSsweDgwICwKICAoMHg5Mjw8 OCkrMHg4MCAsCiAgKDB4OTM8PDgpKzB4ODAgKzB4MDQgLAogICgweDk0PDw4KSsweDgwICwKICAo MHg5NTw8OCkrMHg4MCArMHgwNCAsCiAgKDB4OTY8PDgpKzB4ODAgKzB4MDQgLAogICgweDk3PDw4 KSsweDgwICwKICAoMHg5ODw8OCkrMHg4MCArMHgwOCAsCiAgKDB4OTk8PDgpKzB4ODAgKzB4MDgg KzB4MDQgLAogICgweDAwPDw4KSArMHg0MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgwMTw8OCkg KzB4MTAgKzB4MDEsCiAgKDB4MDI8PDgpICsweDEwICsweDAxLAogICgweDAzPDw4KSArMHgxMCAr MHgwNCArMHgwMSwKICAoMHgwNDw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4MDU8PDgpICsweDEwICsw eDA0ICsweDAxLAogICgweDAwPDw4KSArMHg0MCArMHgwNCArMHgwMSwKICAoMHgwMTw8OCkgKzB4 MDEsCiAgKDB4MDI8PDgpICsweDAxLAogICgweDAzPDw4KSArMHgwNCArMHgwMSwKICAoMHgwNDw8 OCkgKzB4MDEsCiAgKDB4MDU8PDgpICsweDA0ICsweDAxLAogICgweDA2PDw4KSArMHgwNCArMHgw MSwKICAoMHgwNzw8OCkgKzB4MDEsCiAgKDB4MDg8PDgpICsweDA4ICsweDAxLAogICgweDA5PDw4 KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHgxMDw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4MTE8PDgp ICsweDEwICsweDA0ICsweDAxLAogICgweDEyPDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHgx Mzw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4MTQ8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDE1 PDw4KSArMHgxMCArMHgwMSwKICAoMHgxMDw8OCkgKzB4MDEsCiAgKDB4MTE8PDgpICsweDA0ICsw eDAxLAogICgweDEyPDw4KSArMHgwNCArMHgwMSwKICAoMHgxMzw8OCkgKzB4MDEsCiAgKDB4MTQ8 PDgpICsweDA0ICsweDAxLAogICgweDE1PDw4KSArMHgwMSwKICAoMHgxNjw8OCkgKzB4MDEsCiAg KDB4MTc8PDgpICsweDA0ICsweDAxLAogICgweDE4PDw4KSArMHgwOCArMHgwNCArMHgwMSwKICAo MHgxOTw8OCkgKzB4MDggKzB4MDEsCiAgKDB4MjA8PDgpICsweDIwICsweDEwICsweDAxLAogICgw eDIxPDw4KSArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgyMjw8OCkgKzB4MjAgKzB4MTAg KzB4MDQgKzB4MDEsCiAgKDB4MjM8PDgpICsweDIwICsweDEwICsweDAxLAogICgweDI0PDw4KSAr MHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgyNTw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAg KDB4MjA8PDgpICsweDIwICsweDAxLAogICgweDIxPDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAo MHgyMjw8OCkgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4MjM8PDgpICsweDIwICsweDAxLAogICgw eDI0PDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHgyNTw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4 MjY8PDgpICsweDIwICsweDAxLAogICgweDI3PDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHgy ODw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4Mjk8PDgpICsweDIwICsweDA4ICsw eDAxLAogICgweDMwPDw4KSArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgzMTw8OCkgKzB4 MjAgKzB4MTAgKzB4MDEsCiAgKDB4MzI8PDgpICsweDIwICsweDEwICsweDAxLAogICgweDMzPDw4 KSArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgzNDw8OCkgKzB4MjAgKzB4MTAgKzB4MDEs CiAgKDB4MzU8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDMwPDw4KSArMHgyMCAr MHgwNCArMHgwMSwKICAoMHgzMTw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4MzI8PDgpICsweDIwICsw eDAxLAogICgweDMzPDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHgzNDw8OCkgKzB4MjAgKzB4 MDEsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDM2PDw4KSArMHgyMCArMHgw NCArMHgwMSwKICAoMHgzNzw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4Mzg8PDgpICsweDIwICsweDA4 ICsweDAxLAogICgweDM5PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg0MDw8OCkg KzB4MTAgKzB4MDEsCiAgKDB4NDE8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDQyPDw4KSAr MHgxMCArMHgwNCArMHgwMSwKICAoMHg0Mzw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4NDQ8PDgpICsw eDEwICsweDA0ICsweDAxLAogICgweDQ1PDw4KSArMHgxMCArMHgwMSwKICAoMHg0MDw8OCkgKzB4 MDEsCiAgKDB4NDE8PDgpICsweDA0ICsweDAxLAogICgweDQyPDw4KSArMHgwNCArMHgwMSwKICAo MHg0Mzw8OCkgKzB4MDEsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAxLAogICgweDQ1PDw4KSArMHgw MSwKICAoMHg0Njw8OCkgKzB4MDEsCiAgKDB4NDc8PDgpICsweDA0ICsweDAxLAogICgweDQ4PDw4 KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHg0OTw8OCkgKzB4MDggKzB4MDEsCiAgKDB4NTA8PDgp ICsweDEwICsweDA0ICsweDAxLAogICgweDUxPDw4KSArMHgxMCArMHgwMSwKICAoMHg1Mjw8OCkg KzB4MTAgKzB4MDEsCiAgKDB4NTM8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDU0PDw4KSAr MHgxMCArMHgwMSwKICAoMHg1NTw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NTA8PDgpICsw eDA0ICsweDAxLAogICgweDUxPDw4KSArMHgwMSwKICAoMHg1Mjw8OCkgKzB4MDEsCiAgKDB4NTM8 PDgpICsweDA0ICsweDAxLAogICgweDU0PDw4KSArMHgwMSwKICAoMHg1NTw8OCkgKzB4MDQgKzB4 MDEsCiAgKDB4NTY8PDgpICsweDA0ICsweDAxLAogICgweDU3PDw4KSArMHgwMSwKICAoMHg1ODw8 OCkgKzB4MDggKzB4MDEsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDYwPDw4 KSArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg2MTw8OCkgKzB4MjAgKzB4MTAgKzB4MDEs CiAgKDB4NjI8PDgpICsweDIwICsweDEwICsweDAxLAogICgweDYzPDw4KSArMHgyMCArMHgxMCAr MHgwNCArMHgwMSwKICAoMHg2NDw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4NjU8PDgpICsw eDIwICsweDEwICsweDA0ICsweDAxLAogICgweDYwPDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAo MHg2MTw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4NjI8PDgpICsweDIwICsweDAxLAogICgweDYzPDw4 KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHg2NDw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4NjU8PDgp ICsweDIwICsweDA0ICsweDAxLAogICgweDY2PDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHg2 Nzw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAxLAogICgweDY5 PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg3MDw8OCkgKzB4MjAgKzB4MTAgKzB4 MDEsCiAgKDB4NzE8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDcyPDw4KSArMHgy MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg3Mzw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4 NzQ8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDc1PDw4KSArMHgyMCArMHgxMCAr MHgwMSwKICAoMHg3MDw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4NzE8PDgpICsweDIwICsweDA0ICsw eDAxLAogICgweDcyPDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHg3Mzw8OCkgKzB4MjAgKzB4 MDEsCiAgKDB4NzQ8PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDc1PDw4KSArMHgyMCArMHgw MSwKICAoMHg3Njw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsweDAx LAogICgweDc4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg3OTw8OCkgKzB4MjAg KzB4MDggKzB4MDEsCiAgKDB4ODA8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4ODE8PDgpKzB4 ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4ODI8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEs CiAgKDB4ODM8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MTAgKzB4 MDQgKzB4MDEsCiAgKDB4ODU8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4ODA8PDgpKzB4ODAg KzB4MDEsCiAgKDB4ODE8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4ODI8PDgpKzB4ODAgKzB4 MDQgKzB4MDEsCiAgKDB4ODM8PDgpKzB4ODAgKzB4MDEsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MDQg KzB4MDEsCiAgKDB4ODU8PDgpKzB4ODAgKzB4MDEsCiAgKDB4ODY8PDgpKzB4ODAgKzB4MDEsCiAg KDB4ODc8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4ODg8PDgpKzB4ODAgKzB4MDggKzB4MDQg KzB4MDEsCiAgKDB4ODk8PDgpKzB4ODAgKzB4MDggKzB4MDEsCiAgKDB4OTA8PDgpKzB4ODAgKzB4 MTAgKzB4MDQgKzB4MDEsCiAgKDB4OTE8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4OTI8PDgp KzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4OTM8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4OTQ8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4OTU8PDgpKzB4ODAgKzB4MTAgKzB4MDQg KzB4MDEsCiAgKDB4OTA8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4OTE8PDgpKzB4ODAgKzB4 MDEsCiAgKDB4OTI8PDgpKzB4ODAgKzB4MDEsCiAgKDB4OTM8PDgpKzB4ODAgKzB4MDQgKzB4MDEs CiAgKDB4OTQ8PDgpKzB4ODAgKzB4MDEsCiAgKDB4OTU8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAg KDB4OTY8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4OTc8PDgpKzB4ODAgKzB4MDEsCiAgKDB4 OTg8PDgpKzB4ODAgKzB4MDggKzB4MDEsCiAgKDB4OTk8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4 MDEsCiAgKDB4QTA8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QTE8PDgp KzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4QTI8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4 MDEsCiAgKDB4QTM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QTQ8PDgp KzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4QTU8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4 MDQgKzB4MDEsCiAgKDB4QTA8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4QTE8PDgp KzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QTI8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QTM8 PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4QTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDEs CiAgKDB4QTU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4QTY8PDgpKzB4ODAgKzB4 MjAgKzB4MDQgKzB4MDEsCiAgKDB4QTc8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QTg8PDgp KzB4ODAgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4QTk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4 MDQgKzB4MDEsCiAgKDB4QjA8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4QjE8PDgp KzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QjI8PDgpKzB4ODAgKzB4MjAgKzB4 MTAgKzB4MDQgKzB4MDEsCiAgKDB4QjM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4 QjQ8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QjU8PDgpKzB4ODAgKzB4 MjAgKzB4MTAgKzB4MDEsCiAgKDB4QjA8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QjE8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4QjI8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4 MDEsCiAgKDB4QjM8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QjQ8PDgpKzB4ODAgKzB4MjAg KzB4MDQgKzB4MDEsCiAgKDB4QjU8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4QjY8PDgpKzB4 ODAgKzB4MjAgKzB4MDEsCiAgKDB4Qjc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4 Qjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4Qjk8PDgpKzB4ODAgKzB4 MjAgKzB4MDggKzB4MDEsCiAgKDB4QzA8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4 QzE8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAgKDB4QzI8PDgpKzB4ODAgKzB4MTAgKzB4MDEsCiAg KDB4QzM8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QzQ8PDgpKzB4ODAgKzB4MTAg KzB4MDEsCiAgKDB4QzU8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4QzA8PDgpKzB4 ODAgKzB4MDQgKzB4MDEsCiAgKDB4QzE8PDgpKzB4ODAgKzB4MDEsCiAgKDB4QzI8PDgpKzB4ODAg KzB4MDEsCiAgKDB4QzM8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4QzQ8PDgpKzB4ODAgKzB4 MDEsCiAgKDB4QzU8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4QzY8PDgpKzB4ODAgKzB4MDQg KzB4MDEsCiAgKDB4Qzc8PDgpKzB4ODAgKzB4MDEsCiAgKDB4Qzg8PDgpKzB4ODAgKzB4MDggKzB4 MDEsCiAgKDB4Qzk8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4RDA8PDgpKzB4ODAg KzB4MTAgKzB4MDEsCiAgKDB4RDE8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RDI8 PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RDM8PDgpKzB4ODAgKzB4MTAgKzB4MDEs CiAgKDB4RDQ8PDgpKzB4ODAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RDU8PDgpKzB4ODAgKzB4 MTAgKzB4MDEsCiAgKDB4RDA8PDgpKzB4ODAgKzB4MDEsCiAgKDB4RDE8PDgpKzB4ODAgKzB4MDQg KzB4MDEsCiAgKDB4RDI8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4RDM8PDgpKzB4ODAgKzB4 MDEsCiAgKDB4RDQ8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAgKDB4RDU8PDgpKzB4ODAgKzB4MDEs CiAgKDB4RDY8PDgpKzB4ODAgKzB4MDEsCiAgKDB4RDc8PDgpKzB4ODAgKzB4MDQgKzB4MDEsCiAg KDB4RDg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4RDk8PDgpKzB4ODAgKzB4MDgg KzB4MDEsCiAgKDB4RTA8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4RTE8PDgpKzB4 ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RTI8PDgpKzB4ODAgKzB4MjAgKzB4MTAg KzB4MDQgKzB4MDEsCiAgKDB4RTM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4RTQ8 PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RTU8PDgpKzB4ODAgKzB4MjAg KzB4MTAgKzB4MDEsCiAgKDB4RTA8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4RTE8PDgpKzB4 ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4RTI8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEs CiAgKDB4RTM8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4RTQ8PDgpKzB4ODAgKzB4MjAgKzB4 MDQgKzB4MDEsCiAgKDB4RTU8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4RTY8PDgpKzB4ODAg KzB4MjAgKzB4MDEsCiAgKDB4RTc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4RTg8 PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4RTk8PDgpKzB4ODAgKzB4MjAg KzB4MDggKzB4MDEsCiAgKDB4RjA8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4RjE8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4RjI8PDgpKzB4ODAgKzB4MjAg KzB4MTAgKzB4MDEsCiAgKDB4RjM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4RjQ8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4RjU8PDgpKzB4ODAgKzB4MjAg KzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4RjA8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAg KDB4RjE8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAgKDB4RjI8PDgpKzB4ODAgKzB4MjAgKzB4MDEs CiAgKDB4RjM8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4RjQ8PDgpKzB4ODAgKzB4 MjAgKzB4MDEsCiAgKDB4RjU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4RjY8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4Rjc8PDgpKzB4ODAgKzB4MjAgKzB4MDEsCiAg KDB4Rjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4Rjk8PDgpKzB4ODAgKzB4MjAg KzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MDA8PDgpICsweDQwICsweDEwICsweDA0ICsweDAxLAog ICgweDAxPDw4KSArMHgxMCArMHgwMSwKICAoMHgwMjw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4MDM8 PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDA0PDw4KSArMHgxMCArMHgwMSwKICAoMHgwNTw8 OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MDA8PDgpICsweDQwICsweDA0ICsweDAxLAogICgw eDAxPDw4KSArMHgwMSwKICAoMHgwMjw8OCkgKzB4MDEsCiAgKDB4MDM8PDgpICsweDA0ICsweDAx LAogICgweDA0PDw4KSArMHgwMSwKICAoMHgwNTw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4MDY8PDgp ICsweDA0ICsweDAxLAogICgweDA3PDw4KSArMHgwMSwKICAoMHgwODw8OCkgKzB4MDggKzB4MDEs CiAgKDB4MDk8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDEwPDw4KSArMHgxMCArMHgwMSwK ICAoMHgxMTw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MTI8PDgpICsweDEwICsweDA0ICsw eDAxLAogICgweDEzPDw4KSArMHgxMCArMHgwMSwKICAoMHgxNDw8OCkgKzB4MTAgKzB4MDQgKzB4 MDEsCiAgKDB4MTU8PDgpICsweDEwICsweDAxLAogICgweDEwPDw4KSArMHgwMSwKICAoMHgxMTw8 OCkgKzB4MDQgKzB4MDEsCiAgKDB4MTI8PDgpICsweDA0ICsweDAxLAogICgweDEzPDw4KSArMHgw MSwKICAoMHgxNDw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4MTU8PDgpICsweDAxLAogICgweDE2PDw4 KSArMHgwMSwKICAoMHgxNzw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4MTg8PDgpICsweDA4ICsweDA0 ICsweDAxLAogICgweDE5PDw4KSArMHgwOCArMHgwMSwKICAoMHgyMDw8OCkgKzB4MjAgKzB4MTAg KzB4MDEsCiAgKDB4MjE8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDIyPDw4KSAr MHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgyMzw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAg KDB4MjQ8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDI1PDw4KSArMHgyMCArMHgx MCArMHgwMSwKICAoMHgyMDw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4MjE8PDgpICsweDIwICsweDA0 ICsweDAxLAogICgweDIyPDw4KSArMHgyMCArMHgwNCArMHgwMSwKICAoMHgyMzw8OCkgKzB4MjAg KzB4MDEsCiAgKDB4MjQ8PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDI1PDw4KSArMHgyMCAr MHgwMSwKICAoMHgyNjw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4Mjc8PDgpICsweDIwICsweDA0ICsw eDAxLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHgyOTw8OCkgKzB4 MjAgKzB4MDggKzB4MDEsCiAgKDB4MzA8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgw eDMxPDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHgzMjw8OCkgKzB4MjAgKzB4MTAgKzB4MDEs CiAgKDB4MzM8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDM0PDw4KSArMHgyMCAr MHgxMCArMHgwMSwKICAoMHgzNTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MzA8 PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDMxPDw4KSArMHgyMCArMHgwMSwKICAoMHgzMjw8 OCkgKzB4MjAgKzB4MDEsCiAgKDB4MzM8PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDM0PDw4 KSArMHgyMCArMHgwMSwKICAoMHgzNTw8OCkgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4MzY8PDgp ICsweDIwICsweDA0ICsweDAxLAogICgweDM3PDw4KSArMHgyMCArMHgwMSwKICAoMHgzODw8OCkg KzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAog ICgweDQwPDw4KSArMHgxMCArMHgwMSwKICAoMHg0MTw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4NDI8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDQzPDw4KSArMHgxMCArMHgwMSwKICAo MHg0NDw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NDU8PDgpICsweDEwICsweDAxLAogICgw eDQwPDw4KSArMHgwMSwKICAoMHg0MTw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4NDI8PDgpICsweDA0 ICsweDAxLAogICgweDQzPDw4KSArMHgwMSwKICAoMHg0NDw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4 NDU8PDgpICsweDAxLAogICgweDQ2PDw4KSArMHgwMSwKICAoMHg0Nzw8OCkgKzB4MDQgKzB4MDEs CiAgKDB4NDg8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDQ5PDw4KSArMHgwOCArMHgwMSwK ICAoMHg1MDw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NTE8PDgpICsweDEwICsweDAxLAog ICgweDUyPDw4KSArMHgxMCArMHgwMSwKICAoMHg1Mzw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4NTQ8PDgpICsweDEwICsweDAxLAogICgweDU1PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAo MHg1MDw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4NTE8PDgpICsweDAxLAogICgweDUyPDw4KSArMHgw MSwKICAoMHg1Mzw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4NTQ8PDgpICsweDAxLAogICgweDU1PDw4 KSArMHgwNCArMHgwMSwKICAoMHg1Njw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4NTc8PDgpICsweDAx LAogICgweDU4PDw4KSArMHgwOCArMHgwMSwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQgKzB4MDEs CiAgKDB4NjA8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDYxPDw4KSArMHgyMCAr MHgxMCArMHgwMSwKICAoMHg2Mjw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4NjM8PDgpICsw eDIwICsweDEwICsweDA0ICsweDAxLAogICgweDY0PDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAo MHg2NTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MDY8PDgpICsweDA0ICwKICAo MHgwNzw8OCkgLAogICgweDA4PDw4KSArMHgwOCAsCiAgKDB4MDk8PDgpICsweDA4ICsweDA0ICwK ICAoMHgwQTw8OCkgKzB4MDggKzB4MDQgLAogICgweDBCPDw4KSArMHgwOCAsCiAgKDB4MEM8PDgp ICsweDA4ICsweDA0ICwKICAoMHgwRDw8OCkgKzB4MDggLAogICgweDBFPDw4KSArMHgwOCAsCiAg KDB4MEY8PDgpICsweDA4ICsweDA0ICwKICAoMHgxMDw8OCkgKzB4MTAgLAogICgweDExPDw4KSAr MHgxMCArMHgwNCAsCiAgKDB4MTI8PDgpICsweDEwICsweDA0ICwKICAoMHgxMzw8OCkgKzB4MTAg LAogICgweDE0PDw4KSArMHgxMCArMHgwNCAsCiAgKDB4MTU8PDgpICsweDEwICwKICAoMHgxNjw8 OCkgLAogICgweDE3PDw4KSArMHgwNCAsCiAgKDB4MTg8PDgpICsweDA4ICsweDA0ICwKICAoMHgx OTw8OCkgKzB4MDggLAogICgweDFBPDw4KSArMHgwOCAsCiAgKDB4MUI8PDgpICsweDA4ICsweDA0 ICwKICAoMHgxQzw8OCkgKzB4MDggLAogICgweDFEPDw4KSArMHgwOCArMHgwNCAsCiAgKDB4MUU8 PDgpICsweDA4ICsweDA0ICwKICAoMHgxRjw8OCkgKzB4MDggLAogICgweDIwPDw4KSArMHgyMCAr MHgxMCAsCiAgKDB4MjE8PDgpICsweDIwICsweDEwICsweDA0ICwKICAoMHgyMjw8OCkgKzB4MjAg KzB4MTAgKzB4MDQgLAogICgweDIzPDw4KSArMHgyMCArMHgxMCAsCiAgKDB4MjQ8PDgpICsweDIw ICsweDEwICsweDA0ICwKICAoMHgyNTw8OCkgKzB4MjAgKzB4MTAgLAogICgweDI2PDw4KSArMHgy MCAsCiAgKDB4Mjc8PDgpICsweDIwICsweDA0ICwKICAoMHgyODw8OCkgKzB4MjAgKzB4MDggKzB4 MDQgLAogICgweDI5PDw4KSArMHgyMCArMHgwOCAsCiAgKDB4MkE8PDgpICsweDIwICsweDA4ICwK ICAoMHgyQjw8OCkgKzB4MjAgKzB4MDggKzB4MDQgLAogICgweDJDPDw4KSArMHgyMCArMHgwOCAs CiAgKDB4MkQ8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHgyRTw8OCkgKzB4MjAgKzB4MDgg KzB4MDQgLAogICgweDJGPDw4KSArMHgyMCArMHgwOCAsCiAgKDB4MzA8PDgpICsweDIwICsweDEw ICsweDA0ICwKICAoMHgzMTw8OCkgKzB4MjAgKzB4MTAgLAogICgweDMyPDw4KSArMHgyMCArMHgx MCAsCiAgKDB4MzM8PDgpICsweDIwICsweDEwICsweDA0ICwKICAoMHgzNDw8OCkgKzB4MjAgKzB4 MTAgLAogICgweDM1PDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4MzY8PDgpICsweDIwICsw eDA0ICwKICAoMHgzNzw8OCkgKzB4MjAgLAogICgweDM4PDw4KSArMHgyMCArMHgwOCAsCiAgKDB4 Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHgzQTw8OCkgKzB4MjAgKzB4MDggKzB4MDQg LAogICgweDNCPDw4KSArMHgyMCArMHgwOCAsCiAgKDB4M0M8PDgpICsweDIwICsweDA4ICsweDA0 ICwKICAoMHgzRDw8OCkgKzB4MjAgKzB4MDggLAogICgweDNFPDw4KSArMHgyMCArMHgwOCAsCiAg KDB4M0Y8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHg0MDw8OCkgKzB4MTAgLAogICgweDQx PDw4KSArMHgxMCArMHgwNCAsCiAgKDB4NDI8PDgpICsweDEwICsweDA0ICwKICAoMHg0Mzw8OCkg KzB4MTAgLAogICgweDQ0PDw4KSArMHgxMCArMHgwNCAsCiAgKDB4NDU8PDgpICsweDEwICwKICAo MHg0Njw8OCkgLAogICgweDQ3PDw4KSArMHgwNCAsCiAgKDB4NDg8PDgpICsweDA4ICsweDA0ICwK ICAoMHg0OTw8OCkgKzB4MDggLAogICgweDRBPDw4KSArMHgwOCAsCiAgKDB4NEI8PDgpICsweDA4 ICsweDA0ICwKICAoMHg0Qzw8OCkgKzB4MDggLAogICgweDREPDw4KSArMHgwOCArMHgwNCAsCiAg KDB4NEU8PDgpICsweDA4ICsweDA0ICwKICAoMHg0Rjw8OCkgKzB4MDggLAogICgweDUwPDw4KSAr MHgxMCArMHgwNCAsCiAgKDB4NTE8PDgpICsweDEwICwKICAoMHg1Mjw8OCkgKzB4MTAgLAogICgw eDUzPDw4KSArMHgxMCArMHgwNCAsCiAgKDB4NTQ8PDgpICsweDEwICwKICAoMHg1NTw8OCkgKzB4 MTAgKzB4MDQgLAogICgweDU2PDw4KSArMHgwNCAsCiAgKDB4NTc8PDgpICwKICAoMHg1ODw8OCkg KzB4MDggLAogICgweDU5PDw4KSArMHgwOCArMHgwNCAsCiAgKDB4NUE8PDgpICsweDA4ICsweDA0 ICwKICAoMHg1Qjw8OCkgKzB4MDggLAogICgweDVDPDw4KSArMHgwOCArMHgwNCAsCiAgKDB4NUQ8 PDgpICsweDA4ICwKICAoMHg1RTw8OCkgKzB4MDggLAogICgweDVGPDw4KSArMHgwOCArMHgwNCAs CiAgKDB4NjA8PDgpICsweDIwICsweDEwICsweDA0ICwKICAoMHg2MTw8OCkgKzB4MjAgKzB4MTAg LAogICgweDYyPDw4KSArMHgyMCArMHgxMCAsCiAgKDB4NjM8PDgpICsweDIwICsweDEwICsweDA0 ICwKICAoMHg2NDw8OCkgKzB4MjAgKzB4MTAgLAogICgweDY1PDw4KSArMHgyMCArMHgxMCArMHgw NCAsCiAgKDB4NjY8PDgpICsweDIwICsweDA0ICwKICAoMHg2Nzw8OCkgKzB4MjAgLAogICgweDY4 PDw4KSArMHgyMCArMHgwOCAsCiAgKDB4Njk8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHg2 QTw8OCkgKzB4MjAgKzB4MDggKzB4MDQgLAogICgweDZCPDw4KSArMHgyMCArMHgwOCAsCiAgKDB4 NkM8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHg2RDw8OCkgKzB4MjAgKzB4MDggLAogICgw eDZFPDw4KSArMHgyMCArMHgwOCAsCiAgKDB4NkY8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAo MHg3MDw8OCkgKzB4MjAgKzB4MTAgLAogICgweDcxPDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAg KDB4NzI8PDgpICsweDIwICsweDEwICsweDA0ICwKICAoMHg3Mzw8OCkgKzB4MjAgKzB4MTAgLAog ICgweDc0PDw4KSArMHgyMCArMHgxMCArMHgwNCAsCiAgKDB4NzU8PDgpICsweDIwICsweDEwICwK ICAoMHg3Njw8OCkgKzB4MjAgLAogICgweDc3PDw4KSArMHgyMCArMHgwNCAsCiAgKDB4Nzg8PDgp ICsweDIwICsweDA4ICsweDA0ICwKICAoMHg3OTw8OCkgKzB4MjAgKzB4MDggLAogICgweDdBPDw4 KSArMHgyMCArMHgwOCAsCiAgKDB4N0I8PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHg3Qzw8 OCkgKzB4MjAgKzB4MDggLAogICgweDdEPDw4KSArMHgyMCArMHgwOCArMHgwNCAsCiAgKDB4N0U8 PDgpICsweDIwICsweDA4ICsweDA0ICwKICAoMHg3Rjw8OCkgKzB4MjAgKzB4MDggLAogICgweDgw PDw4KSsweDgwICsweDEwICwKICAoMHg4MTw8OCkrMHg4MCArMHgxMCArMHgwNCAsCiAgKDB4ODI8 PDgpKzB4ODAgKzB4MTAgKzB4MDQgLAogICgweDgzPDw4KSsweDgwICsweDEwICwKICAoMHg4NDw8 OCkrMHg4MCArMHgxMCArMHgwNCAsCiAgKDB4ODU8PDgpKzB4ODAgKzB4MTAgLAogICgweDg2PDw4 KSsweDgwICwKICAoMHg4Nzw8OCkrMHg4MCArMHgwNCAsCiAgKDB4ODg8PDgpKzB4ODAgKzB4MDgg KzB4MDQgLAogICgweDg5PDw4KSsweDgwICsweDA4ICwKICAoMHg4QTw8OCkrMHg4MCArMHgwOCAs CiAgKDB4OEI8PDgpKzB4ODAgKzB4MDggKzB4MDQgLAogICgweDhDPDw4KSsweDgwICsweDA4ICwK ICAoMHg4RDw8OCkrMHg4MCArMHgwOCArMHgwNCAsCiAgKDB4OEU8PDgpKzB4ODAgKzB4MDggKzB4 MDQgLAogICgweDhGPDw4KSsweDgwICsweDA4ICwKICAoMHg5MDw8OCkrMHg4MCArMHgxMCArMHgw NCAsCiAgKDB4OTE8PDgpKzB4ODAgKzB4MTAgLAogICgweDkyPDw4KSsweDgwICsweDEwICwKICAo MHg5Mzw8OCkrMHg4MCArMHgxMCArMHgwNCAsCiAgKDB4OTQ8PDgpKzB4ODAgKzB4MTAgLAogICgw eDk1PDw4KSsweDgwICsweDEwICsweDA0ICwKICAoMHg5Njw8OCkrMHg4MCArMHgwNCAsCiAgKDB4 OTc8PDgpKzB4ODAgLAogICgweDk4PDw4KSsweDgwICsweDA4ICwKICAoMHg5OTw8OCkrMHg4MCAr MHgwOCArMHgwNCAsCiAgKDB4OUE8PDgpKzB4ODAgKzB4MDggKzB4MDQgLAogICgweDlCPDw4KSsw eDgwICsweDA4ICwKICAoMHg5Qzw8OCkrMHg4MCArMHgwOCArMHgwNCAsCiAgKDB4OUQ8PDgpKzB4 ODAgKzB4MDggLAogICgweDlFPDw4KSsweDgwICsweDA4ICwKICAoMHg5Rjw8OCkrMHg4MCArMHgw OCArMHgwNCAsCiAgKDB4MDA8PDgpICsweDQwICsweDEwICsweDA0ICsweDAxLAogICgweDAxPDw4 KSArMHgxMCArMHgwMSwKICAoMHgwMjw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4MDM8PDgpICsweDEw ICsweDA0ICsweDAxLAogICgweDA0PDw4KSArMHgxMCArMHgwMSwKICAoMHgwNTw8OCkgKzB4MTAg KzB4MDQgKzB4MDEsCiAgKDB4MDY8PDgpICsweDA0ICsweDAxLAogICgweDA3PDw4KSArMHgwMSwK ICAoMHgwODw8OCkgKzB4MDggKzB4MDEsCiAgKDB4MDk8PDgpICsweDA4ICsweDA0ICsweDAxLAog ICgweDBBPDw4KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHgwQjw8OCkgKzB4MDggKzB4MDEsCiAg KDB4MEM8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDBEPDw4KSArMHgwOCArMHgwMSwKICAo MHgwRTw8OCkgKzB4MDggKzB4MDEsCiAgKDB4MEY8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgw eDEwPDw4KSArMHgxMCArMHgwMSwKICAoMHgxMTw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4 MTI8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDEzPDw4KSArMHgxMCArMHgwMSwKICAoMHgx NDw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MTU8PDgpICsweDEwICsweDAxLAogICgweDE2 PDw4KSArMHgwMSwKICAoMHgxNzw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4MTg8PDgpICsweDA4ICsw eDA0ICsweDAxLAogICgweDE5PDw4KSArMHgwOCArMHgwMSwKICAoMHgxQTw8OCkgKzB4MDggKzB4 MDEsCiAgKDB4MUI8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDFDPDw4KSArMHgwOCArMHgw MSwKICAoMHgxRDw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MUU8PDgpICsweDA4ICsweDA0 ICsweDAxLAogICgweDFGPDw4KSArMHgwOCArMHgwMSwKICAoMHgyMDw8OCkgKzB4MjAgKzB4MTAg KzB4MDEsCiAgKDB4MjE8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDIyPDw4KSAr MHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgyMzw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAg KDB4MjQ8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDI1PDw4KSArMHgyMCArMHgx MCArMHgwMSwKICAoMHgyNjw8OCkgKzB4MjAgKzB4MDEsCiAgKDB4Mjc8PDgpICsweDIwICsweDA0 ICsweDAxLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHgyOTw8OCkg KzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4MkE8PDgpICsweDIwICsweDA4ICsweDAxLAogICgweDJC PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHgyQzw8OCkgKzB4MjAgKzB4MDggKzB4 MDEsCiAgKDB4MkQ8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDJFPDw4KSArMHgy MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHgyRjw8OCkgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4 MzA8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDMxPDw4KSArMHgyMCArMHgxMCAr MHgwMSwKICAoMHgzMjw8OCkgKzB4MjAgKzB4MTAgKzB4MDEsCiAgKDB4MzM8PDgpICsweDIwICsw eDEwICsweDA0ICsweDAxLAogICgweDM0PDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHgzNTw8 OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MzY8PDgpICsweDIwICsweDA0ICsweDAx LAogICgweDM3PDw4KSArMHgyMCArMHgwMSwKICAoMHgzODw8OCkgKzB4MjAgKzB4MDggKzB4MDEs CiAgKDB4Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDNBPDw4KSArMHgyMCAr MHgwOCArMHgwNCArMHgwMSwKICAoMHgzQjw8OCkgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4M0M8 PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDNEPDw4KSArMHgyMCArMHgwOCArMHgw MSwKICAoMHgzRTw8OCkgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4M0Y8PDgpICsweDIwICsweDA4 ICsweDA0ICsweDAxLAogICgweDQwPDw4KSArMHgxMCArMHgwMSwKICAoMHg0MTw8OCkgKzB4MTAg KzB4MDQgKzB4MDEsCiAgKDB4NDI8PDgpICsweDEwICsweDA0ICsweDAxLAogICgweDQzPDw4KSAr MHgxMCArMHgwMSwKICAoMHg0NDw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NDU8PDgpICsw eDEwICsweDAxLAogICgweDQ2PDw4KSArMHgwMSwKICAoMHg0Nzw8OCkgKzB4MDQgKzB4MDEsCiAg KDB4NDg8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDQ5PDw4KSArMHgwOCArMHgwMSwKICAo MHg0QTw8OCkgKzB4MDggKzB4MDEsCiAgKDB4NEI8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgw eDRDPDw4KSArMHgwOCArMHgwMSwKICAoMHg0RDw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4 NEU8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDRGPDw4KSArMHgwOCArMHgwMSwKICAoMHg1 MDw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NTE8PDgpICsweDEwICsweDAxLAogICgweDUy PDw4KSArMHgxMCArMHgwMSwKICAoMHg1Mzw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NTQ8 PDgpICsweDEwICsweDAxLAogICgweDU1PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHg1Njw8 OCkgKzB4MDQgKzB4MDEsCiAgKDB4NTc8PDgpICsweDAxLAogICgweDU4PDw4KSArMHgwOCArMHgw MSwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NUE8PDgpICsweDA4ICsweDA0 ICsweDAxLAogICgweDVCPDw4KSArMHgwOCArMHgwMSwKICAoMHg1Qzw8OCkgKzB4MDggKzB4MDQg KzB4MDEsCiAgKDB4NUQ8PDgpICsweDA4ICsweDAxLAogICgweDVFPDw4KSArMHgwOCArMHgwMSwK ICAoMHg1Rjw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NjA8PDgpICsweDIwICsweDEwICsw eDA0ICsweDAxLAogICgweDYxPDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHg2Mjw8OCkgKzB4 MjAgKzB4MTAgKzB4MDEsCiAgKDB4NjM8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgw eDY0PDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHg2NTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQg KzB4MDEsCiAgKDB4NjY8PDgpICsweDIwICsweDA0ICsweDAxLAogICgweDY3PDw4KSArMHgyMCAr MHgwMSwKICAoMHg2ODw8OCkgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4Njk8PDgpICsweDIwICsw eDA4ICsweDA0ICsweDAxLAogICgweDZBPDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAo MHg2Qjw8OCkgKzB4MjAgKzB4MDggKzB4MDEsCiAgKDB4NkM8PDgpICsweDIwICsweDA4ICsweDA0 ICsweDAxLAogICgweDZEPDw4KSArMHgyMCArMHgwOCArMHgwMSwKICAoMHg2RTw8OCkgKzB4MjAg KzB4MDggKzB4MDEsCiAgKDB4NkY8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDcw PDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHg3MTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4 MDEsCiAgKDB4NzI8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDczPDw4KSArMHgy MCArMHgxMCArMHgwMSwKICAoMHg3NDw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4 NzU8PDgpICsweDIwICsweDEwICsweDAxLAogICgweDc2PDw4KSArMHgyMCArMHgwMSwKICAoMHg3 Nzw8OCkgKzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4Nzg8PDgpICsweDIwICsweDA4ICsweDA0ICsw eDAxLAogICgweDc5PDw4KSArMHgyMCArMHgwOCArMHgwMSwKICAoMHg3QTw8OCkgKzB4MjAgKzB4 MDggKzB4MDEsCiAgKDB4N0I8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDdDPDw4 KSArMHgyMCArMHgwOCArMHgwMSwKICAoMHg3RDw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEs CiAgKDB4N0U8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDdGPDw4KSArMHgyMCAr MHgwOCArMHgwMSwKICAoMHg4MDw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHg4MTw8OCkrMHg4 MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg4Mjw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwK ICAoMHg4Mzw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHg4NDw8OCkrMHg4MCArMHgxMCArMHgw NCArMHgwMSwKICAoMHg4NTw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHg4Njw8OCkrMHg4MCAr MHgwMSwKICAoMHg4Nzw8OCkrMHg4MCArMHgwNCArMHgwMSwKICAoMHg4ODw8OCkrMHg4MCArMHgw OCArMHgwNCArMHgwMSwKICAoMHg4OTw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHg4QTw8OCkr MHg4MCArMHgwOCArMHgwMSwKICAoMHg4Qjw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAo MHg4Qzw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHg4RDw8OCkrMHg4MCArMHgwOCArMHgwNCAr MHgwMSwKICAoMHg4RTw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg4Rjw8OCkrMHg4 MCArMHgwOCArMHgwMSwKICAoMHg5MDw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg5 MTw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHg5Mjw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAo MHg5Mzw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg5NDw8OCkrMHg4MCArMHgxMCAr MHgwMSwKICAoMHg5NTw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHg5Njw8OCkrMHg4 MCArMHgwNCArMHgwMSwKICAoMHg5Nzw8OCkrMHg4MCArMHgwMSwKICAoMHg5ODw8OCkrMHg4MCAr MHgwOCArMHgwMSwKICAoMHg5OTw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg5QTw8 OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg5Qjw8OCkrMHg4MCArMHgwOCArMHgwMSwK ICAoMHg5Qzw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHg5RDw8OCkrMHg4MCArMHgw OCArMHgwMSwKICAoMHg5RTw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHg5Rjw8OCkrMHg4MCAr MHgwOCArMHgwNCArMHgwMSwKICAoMHhBMDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwNCArMHgw MSwKICAoMHhBMTw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhBMjw8OCkrMHg4MCAr MHgyMCArMHgxMCArMHgwMSwKICAoMHhBMzw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwNCArMHgw MSwKICAoMHhBNDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhBNTw8OCkrMHg4MCAr MHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhBNjw8OCkrMHg4MCArMHgyMCArMHgwNCArMHgw MSwKICAoMHhBNzw8OCkrMHg4MCArMHgyMCArMHgwMSwKICAoMHhBODw8OCkrMHg4MCArMHgyMCAr MHgwOCArMHgwMSwKICAoMHhBOTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAo MHhBQTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhBQjw8OCkrMHg4MCAr MHgyMCArMHgwOCArMHgwMSwKICAoMHhBQzw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgw MSwKICAoMHhBRDw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhBRTw8OCkrMHg4MCAr MHgyMCArMHgwOCArMHgwMSwKICAoMHhBRjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgw MSwKICAoMHhCMDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhCMTw8OCkrMHg4MCAr MHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhCMjw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgw NCArMHgwMSwKICAoMHhCMzw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhCNDw8OCkr MHg4MCArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhCNTw8OCkrMHg4MCArMHgyMCArMHgx MCArMHgwMSwKICAoMHhCNjw8OCkrMHg4MCArMHgyMCArMHgwMSwKICAoMHhCNzw8OCkrMHg4MCAr MHgyMCArMHgwNCArMHgwMSwKICAoMHhCODw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgw MSwKICAoMHhCOTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhCQTw8OCkrMHg4MCAr MHgyMCArMHgwOCArMHgwMSwKICAoMHhCQjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgw MSwKICAoMHhCQzw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhCRDw8OCkrMHg4MCAr MHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhCRTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgw NCArMHgwMSwKICAoMHhCRjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhDMDw8OCkr MHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhDMTw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAo MHhDMjw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHhDMzw8OCkrMHg4MCArMHgxMCArMHgwNCAr MHgwMSwKICAoMHhDNDw8OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHhDNTw8OCkrMHg4MCArMHgx MCArMHgwNCArMHgwMSwKICAoMHhDNjw8OCkrMHg4MCArMHgwNCArMHgwMSwKICAoMHhDNzw8OCkr MHg4MCArMHgwMSwKICAoMHhDODw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHhDOTw8OCkrMHg4 MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhDQTw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwK ICAoMHhDQjw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHhDQzw8OCkrMHg4MCArMHgwOCArMHgw NCArMHgwMSwKICAoMHhDRDw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHhDRTw8OCkrMHg4MCAr MHgwOCArMHgwMSwKICAoMHhDRjw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhEMDw8 OCkrMHg4MCArMHgxMCArMHgwMSwKICAoMHhEMTw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwK ICAoMHhEMjw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhEMzw8OCkrMHg4MCArMHgx MCArMHgwMSwKICAoMHhENDw8OCkrMHg4MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhENTw8OCkr MHg4MCArMHgxMCArMHgwMSwKICAoMHhENjw8OCkrMHg4MCArMHgwMSwKICAoMHhENzw8OCkrMHg4 MCArMHgwNCArMHgwMSwKICAoMHhEODw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhE OTw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHhEQTw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAo MHhEQjw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhEQzw8OCkrMHg4MCArMHgwOCAr MHgwMSwKICAoMHhERDw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhERTw8OCkrMHg4 MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhERjw8OCkrMHg4MCArMHgwOCArMHgwMSwKICAoMHhF MDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhFMTw8OCkrMHg4MCArMHgyMCArMHgx MCArMHgwNCArMHgwMSwKICAoMHhFMjw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwNCArMHgwMSwK ICAoMHhFMzw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhFNDw8OCkrMHg4MCArMHgy MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhFNTw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwK ICAoMHhFNjw8OCkrMHg4MCArMHgyMCArMHgwMSwKICAoMHhFNzw8OCkrMHg4MCArMHgyMCArMHgw NCArMHgwMSwKICAoMHhFODw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhF OTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhFQTw8OCkrMHg4MCArMHgyMCArMHgw OCArMHgwMSwKICAoMHhFQjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhF Qzw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhFRDw8OCkrMHg4MCArMHgyMCArMHgw OCArMHgwNCArMHgwMSwKICAoMHhFRTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwK ICAoMHhFRjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhGMDw8OCkrMHg4MCArMHgy MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhGMTw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwK ICAoMHhGMjw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwKICAoMHhGMzw8OCkrMHg4MCArMHgy MCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhGNDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwMSwK ICAoMHhGNTw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHhGNjw8OCkrMHg4 MCArMHgyMCArMHgwNCArMHgwMSwKICAoMHhGNzw8OCkrMHg4MCArMHgyMCArMHgwMSwKICAoMHhG ODw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhGOTw8OCkrMHg4MCArMHgyMCArMHgw OCArMHgwNCArMHgwMSwKICAoMHhGQTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwNCArMHgwMSwK ICAoMHhGQjw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhGQzw8OCkrMHg4MCArMHgy MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHhGRDw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwK ICAoMHhGRTw8OCkrMHg4MCArMHgyMCArMHgwOCArMHgwMSwKICAoMHhGRjw8OCkrMHg4MCArMHgy MCArMHgwOCArMHgwNCArMHgwMSwKICAoMHgwMDw8OCkgKzB4NDAgKzB4MTAgKzB4MDQgKzB4MDEs CiAgKDB4MDE8PDgpICsweDEwICsweDAxLAogICgweDAyPDw4KSArMHgxMCArMHgwMSwKICAoMHgw Mzw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MDQ8PDgpICsweDEwICsweDAxLAogICgweDA1 PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHgwNjw8OCkgKzB4MDQgKzB4MDEsCiAgKDB4MDc8 PDgpICsweDAxLAogICgweDA4PDw4KSArMHgwOCArMHgwMSwKICAoMHgwOTw8OCkgKzB4MDggKzB4 MDQgKzB4MDEsCiAgKDB4MEE8PDgpICsweDA4ICsweDA0ICsweDAxLAogICgweDBCPDw4KSArMHgw OCArMHgwMSwKICAoMHgwQzw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MEQ8PDgpICsweDA4 ICsweDAxLAogICgweDBFPDw4KSArMHgwOCArMHgwMSwKICAoMHgwRjw8OCkgKzB4MDggKzB4MDQg KzB4MDEsCiAgKDB4MTA8PDgpICsweDEwICsweDAxLAogICgweDExPDw4KSArMHgxMCArMHgwNCAr MHgwMSwKICAoMHgxMjw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MTM8PDgpICsweDEwICsw eDAxLAogICgweDE0PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHgxNTw8OCkgKzB4MTAgKzB4 MDEsCiAgKDB4MTY8PDgpICsweDAxLAogICgweDE3PDw4KSArMHgwNCArMHgwMSwKICAoMHgxODw8 OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MTk8PDgpICsweDA4ICsweDAxLAogICgweDFBPDw4 KSArMHgwOCArMHgwMSwKICAoMHgxQjw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MUM8PDgp ICsweDA4ICsweDAxLAogICgweDFEPDw4KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHgxRTw8OCkg KzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4MUY8PDgpICsweDA4ICsweDAxLAogICgweDIwPDw4KSAr MHgyMCArMHgxMCArMHgwMSwKICAoMHgyMTw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4MjI8PDgpICsweDIwICsweDEwICsweDA0ICsweDAxLAogICgweDIzPDw4KSArMHgyMCArMHgx MCArMHgwMSwKICAoMHgyNDw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MjU8PDgp ICsweDIwICsweDEwICsweDAxLAogICgweDI2PDw4KSArMHgyMCArMHgwMSwKICAoMHgyNzw8OCkg KzB4MjAgKzB4MDQgKzB4MDEsCiAgKDB4Mjg8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAog ICgweDI5PDw4KSArMHgyMCArMHgwOCArMHgwMSwKICAoMHgyQTw8OCkgKzB4MjAgKzB4MDggKzB4 MDEsCiAgKDB4MkI8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDJDPDw4KSArMHgy MCArMHgwOCArMHgwMSwKICAoMHgyRDw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4 MkU8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDJGPDw4KSArMHgyMCArMHgwOCAr MHgwMSwKICAoMHgzMDw8OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MzE8PDgpICsw eDIwICsweDEwICsweDAxLAogICgweDMyPDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHgzMzw8 OCkgKzB4MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4MzQ8PDgpICsweDIwICsweDEwICsweDAx LAogICgweDM1PDw4KSArMHgyMCArMHgxMCArMHgwNCArMHgwMSwKICAoMHgzNjw8OCkgKzB4MjAg KzB4MDQgKzB4MDEsCiAgKDB4Mzc8PDgpICsweDIwICsweDAxLAogICgweDM4PDw4KSArMHgyMCAr MHgwOCArMHgwMSwKICAoMHgzOTw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4M0E8 PDgpICsweDIwICsweDA4ICsweDA0ICsweDAxLAogICgweDNCPDw4KSArMHgyMCArMHgwOCArMHgw MSwKICAoMHgzQzw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4M0Q8PDgpICsweDIw ICsweDA4ICsweDAxLAogICgweDNFPDw4KSArMHgyMCArMHgwOCArMHgwMSwKICAoMHgzRjw8OCkg KzB4MjAgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NDA8PDgpICsweDEwICsweDAxLAogICgweDQx PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHg0Mjw8OCkgKzB4MTAgKzB4MDQgKzB4MDEsCiAg KDB4NDM8PDgpICsweDEwICsweDAxLAogICgweDQ0PDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAo MHg0NTw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4NDY8PDgpICsweDAxLAogICgweDQ3PDw4KSArMHgw NCArMHgwMSwKICAoMHg0ODw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NDk8PDgpICsweDA4 ICsweDAxLAogICgweDRBPDw4KSArMHgwOCArMHgwMSwKICAoMHg0Qjw8OCkgKzB4MDggKzB4MDQg KzB4MDEsCiAgKDB4NEM8PDgpICsweDA4ICsweDAxLAogICgweDREPDw4KSArMHgwOCArMHgwNCAr MHgwMSwKICAoMHg0RTw8OCkgKzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NEY8PDgpICsweDA4ICsw eDAxLAogICgweDUwPDw4KSArMHgxMCArMHgwNCArMHgwMSwKICAoMHg1MTw8OCkgKzB4MTAgKzB4 MDEsCiAgKDB4NTI8PDgpICsweDEwICsweDAxLAogICgweDUzPDw4KSArMHgxMCArMHgwNCArMHgw MSwKICAoMHg1NDw8OCkgKzB4MTAgKzB4MDEsCiAgKDB4NTU8PDgpICsweDEwICsweDA0ICsweDAx LAogICgweDU2PDw4KSArMHgwNCArMHgwMSwKICAoMHg1Nzw8OCkgKzB4MDEsCiAgKDB4NTg8PDgp ICsweDA4ICsweDAxLAogICgweDU5PDw4KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHg1QTw8OCkg KzB4MDggKzB4MDQgKzB4MDEsCiAgKDB4NUI8PDgpICsweDA4ICsweDAxLAogICgweDVDPDw4KSAr MHgwOCArMHgwNCArMHgwMSwKICAoMHg1RDw8OCkgKzB4MDggKzB4MDEsCiAgKDB4NUU8PDgpICsw eDA4ICsweDAxLAogICgweDVGPDw4KSArMHgwOCArMHgwNCArMHgwMSwKICAoMHg2MDw8OCkgKzB4 MjAgKzB4MTAgKzB4MDQgKzB4MDEsCiAgKDB4NjE8PDgpICsweDIwICsweDEwICsweDAxLAogICgw eDYyPDw4KSArMHgyMCArMHgxMCArMHgwMSwKICAoMHg2Mzw8OCkgKzB4MjAgKzB4MTAgKzB4MDQg KzB4MDEsCiAgKDB4NjQ8PDgpICsweDIwICsweDEwICsweDAxLAogICgweDY1PDw4KSArMHgyMCAr MHgxMCArMHgwNCArMHgwMSwKICAoMHgwMDw8OCkgKzB4NDAgKzB4MDQgKzB4MDIgLAogICgweDAx PDw4KSArMHgwMiAsCiAgKDB4MDI8PDgpICsweDAyICwKICAoMHgwMzw8OCkgKzB4MDQgKzB4MDIg LAogICgweDA0PDw4KSArMHgwMiAsCiAgKDB4MDU8PDgpICsweDA0ICsweDAyICwKICAoMHgwNjw8 OCkgKzB4MDQgKzB4MDIgLAogICgweDA3PDw4KSArMHgwMiAsCiAgKDB4MDg8PDgpICsweDA4ICsw eDAyICwKICAoMHgwOTw8OCkgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDA0PDw4KSArMHgwMiAs CiAgKDB4MDU8PDgpICsweDA0ICsweDAyICwKICAoMHgwNjw8OCkgKzB4MDQgKzB4MDIgLAogICgw eDA3PDw4KSArMHgwMiAsCiAgKDB4MDg8PDgpICsweDA4ICsweDAyICwKICAoMHgwOTw8OCkgKzB4 MDggKzB4MDQgKzB4MDIgLAogICgweDEwPDw4KSArMHgwMiAsCiAgKDB4MTE8PDgpICsweDA0ICsw eDAyICwKICAoMHgxMjw8OCkgKzB4MDQgKzB4MDIgLAogICgweDEzPDw4KSArMHgwMiAsCiAgKDB4 MTQ8PDgpICsweDA0ICsweDAyICwKICAoMHgxNTw8OCkgKzB4MDIgLAogICgweDE2PDw4KSArMHgw MiAsCiAgKDB4MTc8PDgpICsweDA0ICsweDAyICwKICAoMHgxODw8OCkgKzB4MDggKzB4MDQgKzB4 MDIgLAogICgweDE5PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4MTQ8PDgpICsweDA0ICsweDAyICwK ICAoMHgxNTw8OCkgKzB4MDIgLAogICgweDE2PDw4KSArMHgwMiAsCiAgKDB4MTc8PDgpICsweDA0 ICsweDAyICwKICAoMHgxODw8OCkgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDE5PDw4KSArMHgw OCArMHgwMiAsCiAgKDB4MjA8PDgpICsweDIwICsweDAyICwKICAoMHgyMTw8OCkgKzB4MjAgKzB4 MDQgKzB4MDIgLAogICgweDIyPDw4KSArMHgyMCArMHgwNCArMHgwMiAsCiAgKDB4MjM8PDgpICsw eDIwICsweDAyICwKICAoMHgyNDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDI1PDw4KSAr MHgyMCArMHgwMiAsCiAgKDB4MjY8PDgpICsweDIwICsweDAyICwKICAoMHgyNzw8OCkgKzB4MjAg KzB4MDQgKzB4MDIgLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4 Mjk8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHgyNDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIg LAogICgweDI1PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4MjY8PDgpICsweDIwICsweDAyICwKICAo MHgyNzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgw NCArMHgwMiAsCiAgKDB4Mjk8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHgzMDw8OCkgKzB4 MjAgKzB4MDQgKzB4MDIgLAogICgweDMxPDw4KSArMHgyMCArMHgwMiAsCiAgKDB4MzI8PDgpICsw eDIwICsweDAyICwKICAoMHgzMzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDM0PDw4KSAr MHgyMCArMHgwMiAsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHgzNjw8OCkg KzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDM3PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4Mzg8PDgp ICsweDIwICsweDA4ICsweDAyICwKICAoMHgzOTw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIg LAogICgweDM0PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAy ICwKICAoMHgzNjw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDM3PDw4KSArMHgyMCArMHgw MiAsCiAgKDB4Mzg8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHgzOTw8OCkgKzB4MjAgKzB4 MDggKzB4MDQgKzB4MDIgLAogICgweDQwPDw4KSArMHgwMiAsCiAgKDB4NDE8PDgpICsweDA0ICsw eDAyICwKICAoMHg0Mjw8OCkgKzB4MDQgKzB4MDIgLAogICgweDQzPDw4KSArMHgwMiAsCiAgKDB4 NDQ8PDgpICsweDA0ICsweDAyICwKICAoMHg0NTw8OCkgKzB4MDIgLAogICgweDQ2PDw4KSArMHgw MiAsCiAgKDB4NDc8PDgpICsweDA0ICsweDAyICwKICAoMHg0ODw8OCkgKzB4MDggKzB4MDQgKzB4 MDIgLAogICgweDQ5PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAyICwK ICAoMHg0NTw8OCkgKzB4MDIgLAogICgweDQ2PDw4KSArMHgwMiAsCiAgKDB4NDc8PDgpICsweDA0 ICsweDAyICwKICAoMHg0ODw8OCkgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDQ5PDw4KSArMHgw OCArMHgwMiAsCiAgKDB4NTA8PDgpICsweDA0ICsweDAyICwKICAoMHg1MTw8OCkgKzB4MDIgLAog ICgweDUyPDw4KSArMHgwMiAsCiAgKDB4NTM8PDgpICsweDA0ICsweDAyICwKICAoMHg1NDw8OCkg KzB4MDIgLAogICgweDU1PDw4KSArMHgwNCArMHgwMiAsCiAgKDB4NTY8PDgpICsweDA0ICsweDAy ICwKICAoMHg1Nzw8OCkgKzB4MDIgLAogICgweDU4PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4NTk8 PDgpICsweDA4ICsweDA0ICsweDAyICwKICAoMHg1NDw8OCkgKzB4MDIgLAogICgweDU1PDw4KSAr MHgwNCArMHgwMiAsCiAgKDB4NTY8PDgpICsweDA0ICsweDAyICwKICAoMHg1Nzw8OCkgKzB4MDIg LAogICgweDU4PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAy ICwKICAoMHg2MDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDYxPDw4KSArMHgyMCArMHgw MiAsCiAgKDB4NjI8PDgpICsweDIwICsweDAyICwKICAoMHg2Mzw8OCkgKzB4MjAgKzB4MDQgKzB4 MDIgLAogICgweDY0PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4NjU8PDgpICsweDIwICsweDA0ICsw eDAyICwKICAoMHg2Njw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDY3PDw4KSArMHgyMCAr MHgwMiAsCiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHg2OTw8OCkgKzB4MjAg KzB4MDggKzB4MDQgKzB4MDIgLAogICgweDY0PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4NjU8PDgp ICsweDIwICsweDA0ICsweDAyICwKICAoMHg2Njw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgw eDY3PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAyICwKICAo MHg2OTw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDcwPDw4KSArMHgyMCArMHgw MiAsCiAgKDB4NzE8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHg3Mjw8OCkgKzB4MjAgKzB4 MDQgKzB4MDIgLAogICgweDczPDw4KSArMHgyMCArMHgwMiAsCiAgKDB4NzQ8PDgpICsweDIwICsw eDA0ICsweDAyICwKICAoMHg3NTw8OCkgKzB4MjAgKzB4MDIgLAogICgweDc2PDw4KSArMHgyMCAr MHgwMiAsCiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHg3ODw8OCkgKzB4MjAg KzB4MDggKzB4MDQgKzB4MDIgLAogICgweDc5PDw4KSArMHgyMCArMHgwOCArMHgwMiAsCiAgKDB4 NzQ8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHg3NTw8OCkgKzB4MjAgKzB4MDIgLAogICgw eDc2PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsweDAyICwKICAo MHg3ODw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDc5PDw4KSArMHgyMCArMHgw OCArMHgwMiAsCiAgKDB4ODA8PDgpKzB4ODAgKzB4MDIgLAogICgweDgxPDw4KSsweDgwICsweDA0 ICsweDAyICwKICAoMHg4Mjw8OCkrMHg4MCArMHgwNCArMHgwMiAsCiAgKDB4ODM8PDgpKzB4ODAg KzB4MDIgLAogICgweDg0PDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg4NTw8OCkrMHg4MCAr MHgwMiAsCiAgKDB4ODY8PDgpKzB4ODAgKzB4MDIgLAogICgweDg3PDw4KSsweDgwICsweDA0ICsw eDAyICwKICAoMHg4ODw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4ODk8PDgpKzB4 ODAgKzB4MDggKzB4MDIgLAogICgweDg0PDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg4NTw8 OCkrMHg4MCArMHgwMiAsCiAgKDB4ODY8PDgpKzB4ODAgKzB4MDIgLAogICgweDg3PDw4KSsweDgw ICsweDA0ICsweDAyICwKICAoMHg4ODw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4 ODk8PDgpKzB4ODAgKzB4MDggKzB4MDIgLAogICgweDkwPDw4KSsweDgwICsweDA0ICsweDAyICwK ICAoMHg5MTw8OCkrMHg4MCArMHgwMiAsCiAgKDB4OTI8PDgpKzB4ODAgKzB4MDIgLAogICgweDkz PDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg5NDw8OCkrMHg4MCArMHgwMiAsCiAgKDB4OTU8 PDgpKzB4ODAgKzB4MDQgKzB4MDIgLAogICgweDk2PDw4KSsweDgwICsweDA0ICsweDAyICwKICAo MHg5Nzw8OCkrMHg4MCArMHgwMiAsCiAgKDB4OTg8PDgpKzB4ODAgKzB4MDggKzB4MDIgLAogICgw eDk5PDw4KSsweDgwICsweDA4ICsweDA0ICsweDAyICwKICAoMHgzNDw8OCkgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDM2PDw4KSAr MHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgzNzw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAg KDB4Mzg8PDgpICsweDIwICsweDA4ICsweDAyICsweDAxLAogICgweDM5PDw4KSArMHgyMCArMHgw OCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg0MDw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4NDE8PDgp ICsweDA0ICsweDAyICsweDAxLAogICgweDQyPDw4KSArMHgwNCArMHgwMiArMHgwMSwKICAoMHg0 Mzw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDQ1 PDw4KSArMHgwMiArMHgwMSwKICAoMHg0Njw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4NDc8PDgpICsw eDA0ICsweDAyICsweDAxLAogICgweDQ4PDw4KSArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAo MHg0OTw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAyICsweDAx LAogICgweDQ1PDw4KSArMHgwMiArMHgwMSwKICAoMHg0Njw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4 NDc8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDQ4PDw4KSArMHgwOCArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg0OTw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NTA8PDgpICsweDA0ICsw eDAyICsweDAxLAogICgweDUxPDw4KSArMHgwMiArMHgwMSwKICAoMHg1Mjw8OCkgKzB4MDIgKzB4 MDEsCiAgKDB4NTM8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDU0PDw4KSArMHgwMiArMHgw MSwKICAoMHg1NTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTY8PDgpICsweDA0ICsweDAy ICsweDAxLAogICgweDU3PDw4KSArMHgwMiArMHgwMSwKICAoMHg1ODw8OCkgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDU0PDw4KSAr MHgwMiArMHgwMSwKICAoMHg1NTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTY8PDgpICsw eDA0ICsweDAyICsweDAxLAogICgweDU3PDw4KSArMHgwMiArMHgwMSwKICAoMHg1ODw8OCkgKzB4 MDggKzB4MDIgKzB4MDEsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgw eDYwPDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2MTw8OCkgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4NjI8PDgpICsweDIwICsweDAyICsweDAxLAogICgweDYzPDw4KSArMHgyMCAr MHgwNCArMHgwMiArMHgwMSwKICAoMHg2NDw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NjU8 PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY2PDw4KSArMHgyMCArMHgwNCArMHgw MiArMHgwMSwKICAoMHg2Nzw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Njg8PDgpICsweDIw ICsweDA4ICsweDAyICsweDAxLAogICgweDY5PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg2NDw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NjU8PDgpICsweDIwICsw eDA0ICsweDAyICsweDAxLAogICgweDY2PDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAo MHg2Nzw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAy ICsweDAxLAogICgweDY5PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg3 MDw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NzE8PDgpICsweDIwICsweDA0ICsweDAyICsw eDAxLAogICgweDcyPDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg3Mzw8OCkgKzB4 MjAgKzB4MDIgKzB4MDEsCiAgKDB4NzQ8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgw eDc1PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3Njw8OCkgKzB4MjAgKzB4MDIgKzB4MDEs CiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDc4PDw4KSArMHgyMCAr MHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg3OTw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4 MDEsCiAgKDB4NzQ8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDc1PDw4KSArMHgy MCArMHgwMiArMHgwMSwKICAoMHg3Njw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Nzc8PDgp ICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDc4PDw4KSArMHgyMCArMHgwOCArMHgwNCAr MHgwMiArMHgwMSwKICAoMHg3OTw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4ODA8 PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODE8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4ODI8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODM8PDgpKzB4ODAgKzB4 MDIgKzB4MDEsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODU8PDgp KzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODY8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODc8 PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODg8PDgpKzB4ODAgKzB4MDggKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4ODk8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4ODQ8 PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODU8PDgpKzB4ODAgKzB4MDIgKzB4MDEs CiAgKDB4ODY8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODc8PDgpKzB4ODAgKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4ODg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 ODk8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4OTA8PDgpKzB4ODAgKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4OTE8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTI8PDgpKzB4ODAg KzB4MDIgKzB4MDEsCiAgKDB4OTM8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTQ8 PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTU8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4OTY8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTc8PDgpKzB4ODAgKzB4 MDIgKzB4MDEsCiAgKDB4OTg8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4OTk8PDgp KzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTQ8PDgpKzB4ODAgKzB4MDIgKzB4 MDEsCiAgKDB4OTU8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTY8PDgpKzB4ODAg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTc8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTg8 PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4OTk8PDgpKzB4ODAgKzB4MDggKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4QTA8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4QTE8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QTI8PDgpKzB4ODAgKzB4MjAg KzB4MDIgKzB4MDEsCiAgKDB4QTM8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4QTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QTU8PDgpKzB4ODAgKzB4MjAg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTY8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4QTc8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QTg8PDgpKzB4ODAg KzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QTk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4 QTU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTY8PDgpKzB4ODAgKzB4 MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTc8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEs CiAgKDB4QTg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QTk8PDgpKzB4 ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjA8PDgpKzB4ODAgKzB4MjAg KzB4MDIgKzB4MDEsCiAgKDB4QjE8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4QjI8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjM8PDgpKzB4ODAg KzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QjQ8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4QjU8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QjY8PDgpKzB4ODAg KzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Qjc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4Qjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 Qjk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QjQ8PDgpKzB4ODAgKzB4 MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjU8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEs CiAgKDB4QjY8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Qjc8PDgpKzB4ODAgKzB4 MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Qjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4Qjk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAg KDB4QzA8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QzE8PDgpKzB4ODAgKzB4MDIg KzB4MDEsCiAgKDB4QzI8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzM8PDgpKzB4ODAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4QzQ8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzU8PDgp KzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QzY8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4Qzc8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4Qzg8PDgpKzB4ODAgKzB4MDgg KzB4MDIgKzB4MDEsCiAgKDB4Qzk8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4QzQ8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzU8PDgpKzB4ODAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4QzY8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Qzc8PDgpKzB4 ODAgKzB4MDIgKzB4MDEsCiAgKDB4Qzg8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 Qzk8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDA8PDgpKzB4ODAgKzB4 MDIgKzB4MDEsCiAgKDB4RDE8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDI8PDgp KzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDM8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAg KDB4RDQ8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDU8PDgpKzB4ODAgKzB4MDIg KzB4MDEsCiAgKDB4RDY8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDc8PDgpKzB4ODAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4RDk8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RDQ8PDgpKzB4ODAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDU8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDY8PDgp KzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDc8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4RDg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDk8PDgpKzB4ODAg KzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RTA8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAg KDB4RTE8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTI8PDgpKzB4ODAg KzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTM8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4 MDEsCiAgKDB4RTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTU8PDgp KzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTY8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4 MDEsCiAgKDB4RTc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTg8PDgp KzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTk8PDgpKzB4ODAgKzB4 MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4RTU8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTY8PDgpKzB4 ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4RTg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4RTk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RjA8PDgpKzB4ODAg KzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RjE8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4 MDEsCiAgKDB4RjI8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RjM8PDgpKzB4ODAg KzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RjQ8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4 MDEsCiAgKDB4RjU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RjY8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Rjc8PDgpKzB4ODAgKzB4MjAgKzB4 MDIgKzB4MDEsCiAgKDB4Rjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 Rjk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RjQ8PDgpKzB4 ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RjU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4RjY8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Rjc8 PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Rjg8PDgpKzB4ODAgKzB4MjAgKzB4MDgg KzB4MDIgKzB4MDEsCiAgKDB4Rjk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4MDA8PDgpICsweDQwICsweDA0ICsweDAyICsweDAxLAogICgweDAxPDw4KSArMHgw MiArMHgwMSwKICAoMHgwMjw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4MDM8PDgpICsweDA0ICsweDAy ICsweDAxLAogICgweDA0PDw4KSArMHgwMiArMHgwMSwKICAoMHgwNTw8OCkgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4MDY8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDA3PDw4KSArMHgwMiAr MHgwMSwKICAoMHgwODw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MDk8PDgpICsweDA4ICsw eDA0ICsweDAyICsweDAxLAogICgweDA0PDw4KSArMHgwMiArMHgwMSwKICAoMHgwNTw8OCkgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4MDY8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDA3PDw4 KSArMHgwMiArMHgwMSwKICAoMHgwODw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MDk8PDgp ICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDEwPDw4KSArMHgwMiArMHgwMSwKICAoMHgx MTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTI8PDgpICsweDA0ICsweDAyICsweDAxLAog ICgweDEzPDw4KSArMHgwMiArMHgwMSwKICAoMHgxNDw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4MTU8PDgpICsweDAyICsweDAxLAogICgweDE2PDw4KSArMHgwMiArMHgwMSwKICAoMHgxNzw8 OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTg8PDgpICsweDA4ICsweDA0ICsweDAyICsweDAx LAogICgweDE5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHgxNDw8OCkgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4MTU8PDgpICsweDAyICsweDAxLAogICgweDE2PDw4KSArMHgwMiArMHgwMSwK ICAoMHgxNzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTg8PDgpICsweDA4ICsweDA0ICsw eDAyICsweDAxLAogICgweDE5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHgyMDw8OCkgKzB4 MjAgKzB4MDIgKzB4MDEsCiAgKDB4MjE8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgw eDIyPDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgyMzw8OCkgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4MjQ8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDI1PDw4KSAr MHgyMCArMHgwMiArMHgwMSwKICAoMHgyNjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Mjc8 PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgw NCArMHgwMiArMHgwMSwKICAoMHgyOTw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 MjQ8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDI1PDw4KSArMHgyMCArMHgwMiAr MHgwMSwKICAoMHgyNjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Mjc8PDgpICsweDIwICsw eDA0ICsweDAyICsweDAxLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiArMHgw MSwKICAoMHgyOTw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MzA8PDgpICsweDIw ICsweDA0ICsweDAyICsweDAxLAogICgweDMxPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgz Mjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4MzM8PDgpICsweDIwICsweDA0ICsweDAyICsw eDAxLAogICgweDM0PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgzNTw8OCkgKzB4MjAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4MzY8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgw eDM3PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgzODw8OCkgKzB4MjAgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDM0 PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgzNTw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4MzY8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDM3PDw4KSArMHgy MCArMHgwMiArMHgwMSwKICAoMHgzODw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDQwPDw4KSArMHgwMiAr MHgwMSwKICAoMHg0MTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDI8PDgpICsweDA0ICsw eDAyICsweDAxLAogICgweDQzPDw4KSArMHgwMiArMHgwMSwKICAoMHg0NDw8OCkgKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4NDU8PDgpICsweDAyICsweDAxLAogICgweDQ2PDw4KSArMHgwMiArMHgw MSwKICAoMHg0Nzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDg8PDgpICsweDA4ICsweDA0 ICsweDAyICsweDAxLAogICgweDQ5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHg0NDw8OCkg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDU8PDgpICsweDAyICsweDAxLAogICgweDQ2PDw4KSAr MHgwMiArMHgwMSwKICAoMHg0Nzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDg8PDgpICsw eDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDQ5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAo MHg1MDw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTE8PDgpICsweDAyICsweDAxLAogICgw eDUyPDw4KSArMHgwMiArMHgwMSwKICAoMHg1Mzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 NTQ8PDgpICsweDAyICsweDAxLAogICgweDU1PDw4KSArMHgwNCArMHgwMiArMHgwMSwKICAoMHg1 Njw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTc8PDgpICsweDAyICsweDAxLAogICgweDU4 PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4NTQ8PDgpICsweDAyICsweDAxLAogICgweDU1PDw4KSArMHgwNCArMHgwMiArMHgw MSwKICAoMHg1Njw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTc8PDgpICsweDAyICsweDAx LAogICgweDU4PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4NjA8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDYx PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg2Mjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAg KDB4NjM8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY0PDw4KSArMHgyMCArMHgw MiArMHgwMSwKICAoMHg2NTw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NjY8PDgp ICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY3PDw4KSArMHgyMCArMHgwMiArMHgwMSwK ICAoMHg2ODw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Njk8PDgpICsweDIwICsw eDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDY0PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAo MHg2NTw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NjY8PDgpICsweDIwICsweDA0 ICsweDAyICsweDAxLAogICgweDY3PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg2ODw8OCkg KzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Njk8PDgpICsweDIwICsweDA4ICsweDA0ICsw eDAyICsweDAxLAogICgweDcwPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3MTw8OCkgKzB4 MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NzI8PDgpICsweDIwICsweDA0ICsweDAyICsweDAx LAogICgweDczPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3NDw8OCkgKzB4MjAgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4NzU8PDgpICsweDIwICsweDAyICsweDAxLAogICgweDc2PDw4KSAr MHgyMCArMHgwMiArMHgwMSwKICAoMHg3Nzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4Nzg8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDc5PDw4KSArMHgy MCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg3NDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4NzU8PDgpICsweDIwICsweDAyICsweDAxLAogICgweDc2PDw4KSArMHgyMCArMHgwMiAr MHgwMSwKICAoMHg3Nzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Nzg8PDgpICsw eDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDc5PDw4KSArMHgyMCArMHgwOCArMHgw MiArMHgwMSwKICAoMHg4MDw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4MTw8OCkrMHg4MCAr MHgwNCArMHgwMiArMHgwMSwKICAoMHg4Mjw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAo MHg4Mzw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4NDw8OCkrMHg4MCArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg4NTw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4Njw8OCkrMHg4MCArMHgw MiArMHgwMSwKICAoMHg4Nzw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4ODw8OCkr MHg4MCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4OTw8OCkrMHg4MCArMHgwOCArMHgw MiArMHgwMSwKICAoMHg4NDw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4NTw8OCkr MHg4MCArMHgwMiArMHgwMSwKICAoMHg4Njw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4Nzw8 OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4ODw8OCkrMHg4MCArMHgwOCArMHgwNCAr MHgwMiArMHgwMSwKICAoMHg4OTw8OCkrMHg4MCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg5MDw8 OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5MTw8OCkrMHg4MCArMHgwMiArMHgwMSwK ICAoMHg5Mjw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5Mzw8OCkrMHg4MCArMHgwNCArMHgw MiArMHgwMSwKICAoMHg5NDw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5NTw8OCkrMHg4MCAr MHgwNCArMHgwMiArMHgwMSwKICAoMHg5Njw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAo MHg5Nzw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5ODw8OCkrMHg4MCArMHgwOCArMHgwMiAr MHgwMSwKICAoMHg5OTw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5NDw8 OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5NTw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwK ICAoMHg5Njw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5Nzw8OCkrMHg4MCArMHgw MiArMHgwMSwKICAoMHg5ODw8OCkrMHg4MCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg5OTw8OCkr MHg4MCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHhGQTw8OCkrMHg4MCArMHgyMCArMHgx MCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4RkI8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDgg KzB4MDIgLAogICgweEZDPDw4KSsweDgwICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICwK ICAoMHhGRDw8OCkrMHg4MCArMHgyMCArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4RkU8PDgpKzB4 ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgLAogICgweEZGPDw4KSsweDgwICsweDIwICsweDEw ICsweDA4ICsweDA0ICsweDAyICwKICAoMHgwMDw8OCkgKzB4NDAgKzB4MDQgKzB4MDIgLAogICgw eDAxPDw4KSArMHgwMiAsCiAgKDB4MDI8PDgpICsweDAyICwKICAoMHgwMzw8OCkgKzB4MDQgKzB4 MDIgLAogICgweDA0PDw4KSArMHgwMiAsCiAgKDB4MDU8PDgpICsweDA0ICsweDAyICwKICAoMHgw Njw8OCkgKzB4MDQgKzB4MDIgLAogICgweDA3PDw4KSArMHgwMiAsCiAgKDB4MDg8PDgpICsweDA4 ICsweDAyICwKICAoMHgwOTw8OCkgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDBBPDw4KSArMHgx MCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4MEI8PDgpICsweDEwICsweDA4ICsweDAyICwKICAo MHgwQzw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDBEPDw4KSArMHgxMCArMHgw OCArMHgwMiAsCiAgKDB4MEU8PDgpICsweDEwICsweDA4ICsweDAyICwKICAoMHgwRjw8OCkgKzB4 MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDEwPDw4KSArMHgwMiAsCiAgKDB4MTE8PDgpICsw eDA0ICsweDAyICwKICAoMHgxMjw8OCkgKzB4MDQgKzB4MDIgLAogICgweDEzPDw4KSArMHgwMiAs CiAgKDB4MTQ8PDgpICsweDA0ICsweDAyICwKICAoMHgxNTw8OCkgKzB4MDIgLAogICgweDE2PDw4 KSArMHgwMiAsCiAgKDB4MTc8PDgpICsweDA0ICsweDAyICwKICAoMHgxODw8OCkgKzB4MDggKzB4 MDQgKzB4MDIgLAogICgweDE5PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4MUE8PDgpICsweDEwICsw eDA4ICsweDAyICwKICAoMHgxQjw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDFD PDw4KSArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4MUQ8PDgpICsweDEwICsweDA4ICsweDA0ICsw eDAyICwKICAoMHgxRTw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDFGPDw4KSAr MHgxMCArMHgwOCArMHgwMiAsCiAgKDB4MjA8PDgpICsweDIwICsweDAyICwKICAoMHgyMTw8OCkg KzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDIyPDw4KSArMHgyMCArMHgwNCArMHgwMiAsCiAgKDB4 MjM8PDgpICsweDIwICsweDAyICwKICAoMHgyNDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgw eDI1PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4MjY8PDgpICsweDIwICsweDAyICwKICAoMHgyNzw8 OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgw MiAsCiAgKDB4Mjk8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHgyQTw8OCkgKzB4MjAgKzB4 MTAgKzB4MDggKzB4MDIgLAogICgweDJCPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgw MiAsCiAgKDB4MkM8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICwKICAoMHgyRDw8OCkgKzB4 MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDJFPDw4KSArMHgyMCArMHgxMCArMHgw OCArMHgwNCArMHgwMiAsCiAgKDB4MkY8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICwKICAo MHgzMDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDMxPDw4KSArMHgyMCArMHgwMiAsCiAg KDB4MzI8PDgpICsweDIwICsweDAyICwKICAoMHgzMzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAog ICgweDM0PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAyICwK ICAoMHgzNjw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDM3PDw4KSArMHgyMCArMHgwMiAs CiAgKDB4Mzg8PDgpICsweDIwICsweDA4ICsweDAyICwKICAoMHgzOTw8OCkgKzB4MjAgKzB4MDgg KzB4MDQgKzB4MDIgLAogICgweDNBPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgwMiAs CiAgKDB4M0I8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICwKICAoMHgzQzw8OCkgKzB4MjAg KzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDNEPDw4KSArMHgyMCArMHgxMCArMHgwOCAr MHgwMiAsCiAgKDB4M0U8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICwKICAoMHgzRjw8OCkg KzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDQwPDw4KSArMHgwMiAsCiAgKDB4 NDE8PDgpICsweDA0ICsweDAyICwKICAoMHg0Mjw8OCkgKzB4MDQgKzB4MDIgLAogICgweDQzPDw4 KSArMHgwMiAsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAyICwKICAoMHg0NTw8OCkgKzB4MDIgLAog ICgweDQ2PDw4KSArMHgwMiAsCiAgKDB4NDc8PDgpICsweDA0ICsweDAyICwKICAoMHg0ODw8OCkg KzB4MDggKzB4MDQgKzB4MDIgLAogICgweDQ5PDw4KSArMHgwOCArMHgwMiAsCiAgKDB4NEE8PDgp ICsweDEwICsweDA4ICsweDAyICwKICAoMHg0Qjw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIg LAogICgweDRDPDw4KSArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4NEQ8PDgpICsweDEwICsweDA4 ICsweDA0ICsweDAyICwKICAoMHg0RTw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgw eDRGPDw4KSArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4NTA8PDgpICsweDA0ICsweDAyICwKICAo MHg1MTw8OCkgKzB4MDIgLAogICgweDUyPDw4KSArMHgwMiAsCiAgKDB4NTM8PDgpICsweDA0ICsw eDAyICwKICAoMHg1NDw8OCkgKzB4MDIgLAogICgweDU1PDw4KSArMHgwNCArMHgwMiAsCiAgKDB4 NTY8PDgpICsweDA0ICsweDAyICwKICAoMHg1Nzw8OCkgKzB4MDIgLAogICgweDU4PDw4KSArMHgw OCArMHgwMiAsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAyICwKICAoMHg1QTw8OCkgKzB4 MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDVCPDw4KSArMHgxMCArMHgwOCArMHgwMiAsCiAg KDB4NUM8PDgpICsweDEwICsweDA4ICsweDA0ICsweDAyICwKICAoMHg1RDw8OCkgKzB4MTAgKzB4 MDggKzB4MDIgLAogICgweDVFPDw4KSArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4NUY8PDgpICsw eDEwICsweDA4ICsweDA0ICsweDAyICwKICAoMHg2MDw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAog ICgweDYxPDw4KSArMHgyMCArMHgwMiAsCiAgKDB4NjI8PDgpICsweDIwICsweDAyICwKICAoMHg2 Mzw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDY0PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4 NjU8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHg2Njw8OCkgKzB4MjAgKzB4MDQgKzB4MDIg LAogICgweDY3PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAy ICwKICAoMHg2OTw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDZBPDw4KSArMHgy MCArMHgxMCArMHgwOCArMHgwNCArMHgwMiAsCiAgKDB4NkI8PDgpICsweDIwICsweDEwICsweDA4 ICsweDAyICwKICAoMHg2Qzw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgw eDZEPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4NkU8PDgpICsweDIwICsweDEw ICsweDA4ICsweDAyICwKICAoMHg2Rjw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIg LAogICgweDcwPDw4KSArMHgyMCArMHgwMiAsCiAgKDB4NzE8PDgpICsweDIwICsweDA0ICsweDAy ICwKICAoMHg3Mjw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgLAogICgweDczPDw4KSArMHgyMCArMHgw MiAsCiAgKDB4NzQ8PDgpICsweDIwICsweDA0ICsweDAyICwKICAoMHg3NTw8OCkgKzB4MjAgKzB4 MDIgLAogICgweDc2PDw4KSArMHgyMCArMHgwMiAsCiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsw eDAyICwKICAoMHg3ODw8OCkgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDc5PDw4KSAr MHgyMCArMHgwOCArMHgwMiAsCiAgKDB4N0E8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICwK ICAoMHg3Qjw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAogICgweDdDPDw4KSAr MHgyMCArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4N0Q8PDgpICsweDIwICsweDEwICsweDA4ICsw eDA0ICsweDAyICwKICAoMHg3RTw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgLAog ICgweDdGPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwMiAsCiAgKDB4ODA8PDgpKzB4ODAgKzB4 MDIgLAogICgweDgxPDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg4Mjw8OCkrMHg4MCArMHgw NCArMHgwMiAsCiAgKDB4ODM8PDgpKzB4ODAgKzB4MDIgLAogICgweDg0PDw4KSsweDgwICsweDA0 ICsweDAyICwKICAoMHg4NTw8OCkrMHg4MCArMHgwMiAsCiAgKDB4ODY8PDgpKzB4ODAgKzB4MDIg LAogICgweDg3PDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg4ODw8OCkrMHg4MCArMHgwOCAr MHgwNCArMHgwMiAsCiAgKDB4ODk8PDgpKzB4ODAgKzB4MDggKzB4MDIgLAogICgweDhBPDw4KSsw eDgwICsweDEwICsweDA4ICsweDAyICwKICAoMHg4Qjw8OCkrMHg4MCArMHgxMCArMHgwOCArMHgw NCArMHgwMiAsCiAgKDB4OEM8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgLAogICgweDhEPDw4 KSsweDgwICsweDEwICsweDA4ICsweDA0ICsweDAyICwKICAoMHg4RTw8OCkrMHg4MCArMHgxMCAr MHgwOCArMHgwNCArMHgwMiAsCiAgKDB4OEY8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgLAog ICgweDkwPDw4KSsweDgwICsweDA0ICsweDAyICwKICAoMHg5MTw8OCkrMHg4MCArMHgwMiAsCiAg KDB4OTI8PDgpKzB4ODAgKzB4MDIgLAogICgweDkzPDw4KSsweDgwICsweDA0ICsweDAyICwKICAo MHgzNDw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4MzU8PDgpICsweDIwICsweDA0ICsweDAy ICsweDAxLAogICgweDM2PDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgzNzw8OCkg KzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Mzg8PDgpICsweDIwICsweDA4ICsweDAyICsweDAxLAog ICgweDM5PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgzQTw8OCkgKzB4 MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4M0I8PDgpICsweDIwICsweDEw ICsweDA4ICsweDAyICsweDAxLAogICgweDNDPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCAr MHgwMiArMHgwMSwKICAoMHgzRDw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAg KDB4M0U8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICsweDAxLAogICgweDNGPDw4KSArMHgy MCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg0MDw8OCkgKzB4MDIgKzB4MDEs CiAgKDB4NDE8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDQyPDw4KSArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg0Mzw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4NDQ8PDgpICsweDA0ICsweDAyICsw eDAxLAogICgweDQ1PDw4KSArMHgwMiArMHgwMSwKICAoMHg0Njw8OCkgKzB4MDIgKzB4MDEsCiAg KDB4NDc8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDQ4PDw4KSArMHgwOCArMHgwNCArMHgw MiArMHgwMSwKICAoMHg0OTw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NEE8PDgpICsweDEw ICsweDA4ICsweDAyICsweDAxLAogICgweDRCPDw4KSArMHgxMCArMHgwOCArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg0Qzw8OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NEQ8PDgpICsw eDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDRFPDw4KSArMHgxMCArMHgwOCArMHgw NCArMHgwMiArMHgwMSwKICAoMHg0Rjw8OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 NTA8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDUxPDw4KSArMHgwMiArMHgwMSwKICAoMHg1 Mjw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4NTM8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDU0 PDw4KSArMHgwMiArMHgwMSwKICAoMHg1NTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTY8 PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDU3PDw4KSArMHgwMiArMHgwMSwKICAoMHg1ODw8 OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NTk8PDgpICsweDA4ICsweDA0ICsweDAyICsweDAx LAogICgweDVBPDw4KSArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg1Qjw8OCkg KzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NUM8PDgpICsweDEwICsweDA4ICsweDA0ICsw eDAyICsweDAxLAogICgweDVEPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1RTw8 OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NUY8PDgpICsweDEwICsweDA4ICsweDA0 ICsweDAyICsweDAxLAogICgweDYwPDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2 MTw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NjI8PDgpICsweDIwICsweDAyICsweDAxLAog ICgweDYzPDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2NDw8OCkgKzB4MjAgKzB4 MDIgKzB4MDEsCiAgKDB4NjU8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY2PDw4 KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2Nzw8OCkgKzB4MjAgKzB4MDIgKzB4MDEs CiAgKDB4Njg8PDgpICsweDIwICsweDA4ICsweDAyICsweDAxLAogICgweDY5PDw4KSArMHgyMCAr MHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2QTw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4NkI8PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICsweDAx LAogICgweDZDPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2 RDw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NkU8PDgpICsweDIwICsw eDEwICsweDA4ICsweDAyICsweDAxLAogICgweDZGPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgw NCArMHgwMiArMHgwMSwKICAoMHg3MDw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NzE8PDgp ICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDcyPDw4KSArMHgyMCArMHgwNCArMHgwMiAr MHgwMSwKICAoMHg3Mzw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4NzQ8PDgpICsweDIwICsw eDA0ICsweDAyICsweDAxLAogICgweDc1PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3Njw8 OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Nzc8PDgpICsweDIwICsweDA0ICsweDAyICsweDAx LAogICgweDc4PDw4KSArMHgyMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg3OTw8OCkg KzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4N0E8PDgpICsweDIwICsweDEwICsweDA4ICsw eDAyICsweDAxLAogICgweDdCPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgw MSwKICAoMHg3Qzw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4N0Q8PDgp ICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDdFPDw4KSArMHgyMCAr MHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg3Rjw8OCkgKzB4MjAgKzB4MTAgKzB4 MDggKzB4MDIgKzB4MDEsCiAgKDB4ODA8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODE8PDgp KzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODI8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4ODM8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODQ8PDgpKzB4ODAgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4ODU8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODY8PDgpKzB4 ODAgKzB4MDIgKzB4MDEsCiAgKDB4ODc8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 ODg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4ODk8PDgpKzB4ODAgKzB4 MDggKzB4MDIgKzB4MDEsCiAgKDB4OEE8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEs CiAgKDB4OEI8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OEM8 PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4OEQ8PDgpKzB4ODAgKzB4MTAg KzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OEU8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4OEY8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEs CiAgKDB4OTA8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTE8PDgpKzB4ODAgKzB4 MDIgKzB4MDEsCiAgKDB4OTI8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTM8PDgpKzB4ODAg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTQ8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTU8 PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OTY8PDgpKzB4ODAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4OTc8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4OTg8PDgpKzB4ODAgKzB4 MDggKzB4MDIgKzB4MDEsCiAgKDB4OTk8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4OUE8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OUI8 PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4OUM8PDgpKzB4ODAgKzB4MTAg KzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4OUQ8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4 MDIgKzB4MDEsCiAgKDB4OUU8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4 OUY8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTA8PDgpKzB4 ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTE8PDgpKzB4ODAgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4QTI8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QTM8PDgpKzB4 ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTQ8PDgpKzB4ODAgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4QTU8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTY8 PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QTc8PDgpKzB4ODAgKzB4MjAg KzB4MDIgKzB4MDEsCiAgKDB4QTg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAg KDB4QTk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QUE8PDgp KzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QUI8PDgpKzB4 ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QUM8PDgpKzB4ODAgKzB4MjAg KzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QUQ8PDgpKzB4ODAgKzB4MjAgKzB4 MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QUU8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDgg KzB4MDIgKzB4MDEsCiAgKDB4QUY8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4QjA8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4QjE8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjI8PDgpKzB4ODAgKzB4MjAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjM8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4 QjQ8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QjU8PDgpKzB4ODAgKzB4 MjAgKzB4MDIgKzB4MDEsCiAgKDB4QjY8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4 Qjc8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Qjg8PDgpKzB4ODAgKzB4 MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Qjk8PDgpKzB4ODAgKzB4MjAgKzB4MDgg KzB4MDIgKzB4MDEsCiAgKDB4QkE8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4 MDEsCiAgKDB4QkI8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4QkM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QkQ8 PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QkU8PDgp KzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4QkY8PDgpKzB4 ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4QzA8PDgpKzB4ODAgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4QzE8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzI8PDgpKzB4 ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzM8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 QzQ8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4QzU8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4 MDEsCiAgKDB4QzY8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Qzc8PDgpKzB4ODAg KzB4MDIgKzB4MDEsCiAgKDB4Qzg8PDgpKzB4ODAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Qzk8 PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Q0E8PDgpKzB4ODAgKzB4MTAg KzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Q0I8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4 MDIgKzB4MDEsCiAgKDB4Q0M8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4Q0Q8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Q0U8PDgpKzB4 ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Q0Y8PDgpKzB4ODAgKzB4MTAgKzB4MDgg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDA8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDE8 PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDI8PDgpKzB4ODAgKzB4MDQgKzB4MDIg KzB4MDEsCiAgKDB4RDM8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDQ8PDgpKzB4ODAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDU8PDgpKzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDY8PDgp KzB4ODAgKzB4MDIgKzB4MDEsCiAgKDB4RDc8PDgpKzB4ODAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4RDg8PDgpKzB4ODAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RDk8PDgpKzB4ODAg KzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4REE8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4 MDEsCiAgKDB4REI8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 REM8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4REQ8PDgpKzB4ODAgKzB4 MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4REU8PDgpKzB4ODAgKzB4MTAgKzB4MDgg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4REY8PDgpKzB4ODAgKzB4MTAgKzB4MDggKzB4MDIgKzB4 MDEsCiAgKDB4RTA8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTE8PDgpKzB4ODAg KzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTI8PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4RTM8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTQ8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTU8PDgpKzB4ODAgKzB4MjAgKzB4 MDIgKzB4MDEsCiAgKDB4RTY8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RTc8PDgp KzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTg8PDgpKzB4ODAgKzB4MjAgKzB4 MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RTk8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4RUE8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAg KDB4RUI8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 RUM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RUQ8PDgpKzB4 ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RUU8PDgpKzB4ODAg KzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RUY8PDgpKzB4ODAgKzB4 MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RjA8PDgpKzB4ODAgKzB4MjAgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4RjE8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RjI8 PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RjM8PDgpKzB4ODAgKzB4MjAgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4RjQ8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4RjU8 PDgpKzB4ODAgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RjY8PDgpKzB4ODAgKzB4MjAg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4Rjc8PDgpKzB4ODAgKzB4MjAgKzB4MDIgKzB4MDEsCiAg KDB4Rjg8PDgpKzB4ODAgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Rjk8PDgpKzB4ODAg KzB4MjAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RkE8PDgpKzB4ODAgKzB4MjAgKzB4 MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4RkI8PDgpKzB4ODAgKzB4MjAgKzB4MTAg KzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4RkM8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4RkQ8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4RkU8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAg KDB4RkY8PDgpKzB4ODAgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4 MDA8PDgpICsweDQwICsweDA0ICsweDAyICsweDAxLAogICgweDAxPDw4KSArMHgwMiArMHgwMSwK ICAoMHgwMjw8OCkgKzB4MDIgKzB4MDEsCiAgKDB4MDM8PDgpICsweDA0ICsweDAyICsweDAxLAog ICgweDA0PDw4KSArMHgwMiArMHgwMSwKICAoMHgwNTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4MDY8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDA3PDw4KSArMHgwMiArMHgwMSwKICAo MHgwODw8OCkgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MDk8PDgpICsweDA4ICsweDA0ICsweDAy ICsweDAxLAogICgweDBBPDw4KSArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgw Qjw8OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MEM8PDgpICsweDEwICsweDA4ICsw eDA0ICsweDAyICsweDAxLAogICgweDBEPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAo MHgwRTw8OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MEY8PDgpICsweDEwICsweDA4 ICsweDA0ICsweDAyICsweDAxLAogICgweDEwPDw4KSArMHgwMiArMHgwMSwKICAoMHgxMTw8OCkg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTI8PDgpICsweDA0ICsweDAyICsweDAxLAogICgweDEz PDw4KSArMHgwMiArMHgwMSwKICAoMHgxNDw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTU8 PDgpICsweDAyICsweDAxLAogICgweDE2PDw4KSArMHgwMiArMHgwMSwKICAoMHgxNzw8OCkgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4MTg8PDgpICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgw eDE5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHgxQTw8OCkgKzB4MTAgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4MUI8PDgpICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDFD PDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHgxRDw8OCkgKzB4MTAgKzB4MDggKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4MUU8PDgpICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAx LAogICgweDFGPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHgyMDw8OCkgKzB4MjAg KzB4MDIgKzB4MDEsCiAgKDB4MjE8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDIy PDw4KSArMHgyMCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgyMzw8OCkgKzB4MjAgKzB4MDIgKzB4 MDEsCiAgKDB4MjQ8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDI1PDw4KSArMHgy MCArMHgwMiArMHgwMSwKICAoMHgyNjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4Mjc8PDgp ICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDI4PDw4KSArMHgyMCArMHgwOCArMHgwNCAr MHgwMiArMHgwMSwKICAoMHgyOTw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MkE8 PDgpICsweDIwICsweDEwICsweDA4ICsweDAyICsweDAxLAogICgweDJCPDw4KSArMHgyMCArMHgx MCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgyQzw8OCkgKzB4MjAgKzB4MTAgKzB4MDgg KzB4MDIgKzB4MDEsCiAgKDB4MkQ8PDgpICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICsw eDAxLAogICgweDJFPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAo MHgyRjw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4MzA8PDgpICsweDIw ICsweDA0ICsweDAyICsweDAxLAogICgweDMxPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgz Mjw8OCkgKzB4MjAgKzB4MDIgKzB4MDEsCiAgKDB4MzM8PDgpICsweDIwICsweDA0ICsweDAyICsw eDAxLAogICgweDM0PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgzNTw8OCkgKzB4MjAgKzB4 MDQgKzB4MDIgKzB4MDEsCiAgKDB4MzY8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgw eDM3PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHgzODw8OCkgKzB4MjAgKzB4MDggKzB4MDIg KzB4MDEsCiAgKDB4Mzk8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDNB PDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHgzQjw8OCkgKzB4 MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4M0M8PDgpICsweDIwICsweDEwICsweDA4 ICsweDA0ICsweDAyICsweDAxLAogICgweDNEPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwMiAr MHgwMSwKICAoMHgzRTw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4M0Y8 PDgpICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDQwPDw4KSArMHgw MiArMHgwMSwKICAoMHg0MTw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDI8PDgpICsweDA0 ICsweDAyICsweDAxLAogICgweDQzPDw4KSArMHgwMiArMHgwMSwKICAoMHg0NDw8OCkgKzB4MDQg KzB4MDIgKzB4MDEsCiAgKDB4NDU8PDgpICsweDAyICsweDAxLAogICgweDQ2PDw4KSArMHgwMiAr MHgwMSwKICAoMHg0Nzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NDg8PDgpICsweDA4ICsw eDA0ICsweDAyICsweDAxLAogICgweDQ5PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHg0QTw8 OCkgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NEI8PDgpICsweDEwICsweDA4ICsweDA0 ICsweDAyICsweDAxLAogICgweDRDPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg0 RDw8OCkgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NEU8PDgpICsweDEwICsw eDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDRGPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgw MSwKICAoMHg1MDw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTE8PDgpICsweDAyICsweDAx LAogICgweDUyPDw4KSArMHgwMiArMHgwMSwKICAoMHg1Mzw8OCkgKzB4MDQgKzB4MDIgKzB4MDEs CiAgKDB4NTQ8PDgpICsweDAyICsweDAxLAogICgweDU1PDw4KSArMHgwNCArMHgwMiArMHgwMSwK ICAoMHg1Njw8OCkgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NTc8PDgpICsweDAyICsweDAxLAog ICgweDU4PDw4KSArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1OTw8OCkgKzB4MDggKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4NUE8PDgpICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgw eDVCPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1Qzw8OCkgKzB4MTAgKzB4MDgg KzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NUQ8PDgpICsweDEwICsweDA4ICsweDAyICsweDAxLAog ICgweDVFPDw4KSArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg1Rjw8OCkgKzB4MTAgKzB4 MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NjA8PDgpICsweDIwICsweDA0ICsweDAyICsweDAx LAogICgweDYxPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg2Mjw8OCkgKzB4MjAgKzB4MDIg KzB4MDEsCiAgKDB4NjM8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY0PDw4KSAr MHgyMCArMHgwMiArMHgwMSwKICAoMHg2NTw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAg KDB4NjY8PDgpICsweDIwICsweDA0ICsweDAyICsweDAxLAogICgweDY3PDw4KSArMHgyMCArMHgw MiArMHgwMSwKICAoMHg2ODw8OCkgKzB4MjAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4Njk8PDgp ICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDZBPDw4KSArMHgyMCArMHgxMCAr MHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg2Qjw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4 MDIgKzB4MDEsCiAgKDB4NkM8PDgpICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAx LAogICgweDZEPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg2RTw8OCkg KzB4MjAgKzB4MTAgKzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4NkY8PDgpICsweDIwICsweDEwICsw eDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDcwPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAo MHg3MTw8OCkgKzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NzI8PDgpICsweDIwICsweDA0 ICsweDAyICsweDAxLAogICgweDczPDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3NDw8OCkg KzB4MjAgKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4NzU8PDgpICsweDIwICsweDAyICsweDAxLAog ICgweDc2PDw4KSArMHgyMCArMHgwMiArMHgwMSwKICAoMHg3Nzw8OCkgKzB4MjAgKzB4MDQgKzB4 MDIgKzB4MDEsCiAgKDB4Nzg8PDgpICsweDIwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgw eDc5PDw4KSArMHgyMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg3QTw8OCkgKzB4MjAgKzB4MTAg KzB4MDggKzB4MDIgKzB4MDEsCiAgKDB4N0I8PDgpICsweDIwICsweDEwICsweDA4ICsweDA0ICsw eDAyICsweDAxLAogICgweDdDPDw4KSArMHgyMCArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAo MHg3RDw8OCkgKzB4MjAgKzB4MTAgKzB4MDggKzB4MDQgKzB4MDIgKzB4MDEsCiAgKDB4N0U8PDgp ICsweDIwICsweDEwICsweDA4ICsweDA0ICsweDAyICsweDAxLAogICgweDdGPDw4KSArMHgyMCAr MHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg4MDw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAo MHg4MTw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4Mjw8OCkrMHg4MCArMHgwNCAr MHgwMiArMHgwMSwKICAoMHg4Mzw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4NDw8OCkrMHg4 MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4NTw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4 Njw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg4Nzw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgw MSwKICAoMHg4ODw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4OTw8OCkr MHg4MCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg4QTw8OCkrMHg4MCArMHgxMCArMHgwOCArMHgw MiArMHgwMSwKICAoMHg4Qjw8OCkrMHg4MCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwK ICAoMHg4Qzw8OCkrMHg4MCArMHgxMCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg4RDw8OCkrMHg4 MCArMHgxMCArMHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4RTw8OCkrMHg4MCArMHgxMCAr MHgwOCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg4Rjw8OCkrMHg4MCArMHgxMCArMHgwOCArMHgw MiArMHgwMSwKICAoMHg5MDw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5MTw8OCkr MHg4MCArMHgwMiArMHgwMSwKICAoMHg5Mjw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5Mzw8 OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5NDw8OCkrMHg4MCArMHgwMiArMHgwMSwK ICAoMHg5NTw8OCkrMHg4MCArMHgwNCArMHgwMiArMHgwMSwKICAoMHg5Njw8OCkrMHg4MCArMHgw NCArMHgwMiArMHgwMSwKICAoMHg5Nzw8OCkrMHg4MCArMHgwMiArMHgwMSwKICAoMHg5ODw8OCkr MHg4MCArMHgwOCArMHgwMiArMHgwMSwKICAoMHg5OTw8OCkrMHg4MCArMHgwOCArMHgwNCArMHgw MiArMHgwMQp9OwojIDY1ICJzcmMvY3B1L2k4MDg1L2k4MDg1LmMiIDIKIyA3NyAic3JjL2NwdS9p ODA4NS9pODA4NS5jIgpzdGF0aWMgVUlOVDggaTgwODVfcmVnX2xheW91dFtdID0gewogICAgICAg IEk4MDg1X1BDLEk4MDg1X1NQLEk4MDg1X0FGLEk4MDg1X0JDLEk4MDg1X0RFLEk4MDg1X0hMLCAt MSwKICAgICAgICBJODA4NV9IQUxULEk4MDg1X0lNLEk4MDg1X0lSRVEsSTgwODVfSVNSVixJODA4 NV9WRUNUT1IsIC0xLAogICAgICAgIEk4MDg1X1RSQVBfU1RBVEUsSTgwODVfSU5UUl9TVEFURSxJ ODA4NV9SU1Q1NV9TVEFURSxJODA4NV9SU1Q2NV9TVEFURSxJODA4NV9SU1Q3NV9TVEFURSwKICAg ICAgICAwIH07CgoKc3RhdGljIFVJTlQ4IGk4MDg1X3dpbl9sYXlvdXRbXSA9IHsKICAgICAgICAy NSwgMCw1NSwgMywKICAgICAgICAgMCwgMCwyNCwyMiwKICAgICAgICAyNSwgNCw1NSwgOSwKICAg ICAgICAyNSwxNCw1NSwgOCwKICAgICAgICAgMCwyMyw4MCwgMSwKfTsKCgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgaW50IGNwdXR5cGU7CiAgICAgICAgUEFJUiBQQyxTUCxBRixCQyxERSxITCxY WDsKICAgICAgICBVSU5UOCBIQUxUOwogICAgICAgIFVJTlQ4IElNOwogICAgICAgIFVJTlQ4IElS RVE7CiAgICAgICAgVUlOVDggSVNSVjsKICAgICAgICBVSU5UMzIgSU5UUjsKICAgICAgICBVSU5U MzIgSVJRMjsKICAgICAgICBVSU5UMzIgSVJRMTsKICAgICAgICBJTlQ4IG5taV9zdGF0ZTsKICAg ICAgICBJTlQ4IGlycV9zdGF0ZVs0XTsKICAgICAgICBJTlQ4IGZpbGxlcjsKICAgICAgICBpbnQg KCppcnFfY2FsbGJhY2spKGludCk7CiAgICAgICAgdm9pZCAoKnNvZF9jYWxsYmFjaykoaW50IHN0 YXRlKTsKfSBpODA4NV9SZWdzOwoKaW50IGk4MDg1X0lDb3VudCA9IDA7CgpzdGF0aWMgaTgwODVf UmVncyBJOwpzdGF0aWMgVUlOVDggWlNbMjU2XTsKc3RhdGljIFVJTlQ4IFpTUFsyNTZdOwoKc3Rh dGljIFVJTlQ4IFJPUCh2b2lkKQp7CiAgICAgICAgcmV0dXJuIChPUF9ST01bKEkuUEMudy5sKysp ICYgbWVtX2FtYXNrXSk7Cn0KCnN0YXRpYyBVSU5UOCBBUkcodm9pZCkKewogICAgICAgIHJldHVy biAoT1BfUkFNWyhJLlBDLncubCsrKSAmIG1lbV9hbWFza10pOwp9CgpzdGF0aWMgVUlOVDE2IEFS RzE2KHZvaWQpCnsKICAgICAgICBVSU5UMTYgdzsKICAgICAgICB3ID0gKE9QX1JBTVsoSS5QQy5k KSAmIG1lbV9hbWFza10pOwogICAgICAgIEkuUEMudy5sKys7CiAgICAgICAgdyArPSAoT1BfUkFN WyhJLlBDLmQpICYgbWVtX2FtYXNrXSkgPDwgODsKICAgICAgICBJLlBDLncubCsrOwogICAgICAg IHJldHVybiB3Owp9CgpzdGF0aWMgVUlOVDggUk0oVUlOVDMyIGEpCnsKICAgICAgICByZXR1cm4g Y3B1X3JlYWRtZW0xNihhKTsKfQoKc3RhdGljIHZvaWQgV00oVUlOVDMyIGEsIFVJTlQ4IHYpCnsK ICAgICAgICBjcHVfd3JpdGVtZW0xNihhLCB2KTsKfQoKc3RhdGljIHZvaWQgaWxsZWdhbCh2b2lk KQp7CgoKCgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGV4ZWN1dGVfb25lKGludCBvcGNvZGUp CnsKICAgICAgICBzd2l0Y2ggKG9wY29kZSkKICAgICAgICB7CiAgICAgICAgICAgICAgICBjYXNl IDB4MDA6IGk4MDg1X0lDb3VudCAtPSA0OwoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICBjYXNlIDB4MDE6IGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAgICAg ICAgICAgICAgICAgICAgSS5CQy53LmwgPSBBUkcxNigpOwogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgwMjogaTgwODVfSUNvdW50IC09IDc7CiAg ICAgICAgICAgICAgICAgICAgICAgIFdNKEkuQkMuZCwgSS5BRi5iLmgpOwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgwMzogaTgwODVfSUNvdW50 IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQkMudy5sKys7CiAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChJLkJDLmIubCA9PSAweDAwKSBJLkFGLmIubCB8PSAweDA4OyBlbHNlIEku QUYuYi5sICY9IH4weDA4OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgICAgIGNhc2UgMHgwNDogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAg ICAgICsrSS5CQy5iLmg7IEkuQUYuYi5sPShJLkFGLmIubCYweDAxKXxaU1tJLkJDLmIuaF18KChJ LkJDLmIuaD09MHg4MCk/MHgwNDowKXwoKEkuQkMuYi5oJjB4MEYpPzA6MHgxMCk7CiAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDA1OiBpODA4NV9J Q291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5BRi5iLmw9KEkuQUYuYi5sJjB4 MDEpfDB4MDJ8KChJLkJDLmIuaD09MHg4MCk/MHgwNDowKXwoKEkuQkMuYi5oJjB4MEYpPzA6MHgx MCk7IEkuQUYuYi5sfD1aU1stLUkuQkMuYi5oXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MDY6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAg ICAgICAgICAgICAgICAgICBJLkJDLmIuaD1BUkcoKTsKICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MDc6IGk4MDg1X0lDb3VudCAtPSA0OwogICAg ICAgICAgICAgICAgICAgICAgICB7IEkuQUYuYi5oID0gKEkuQUYuYi5oIDw8IDEpIHwgKEkuQUYu Yi5oID4+IDcpOyBJLkFGLmIubCA9IChJLkFGLmIubCAmIH4oMHgxMCArMHgwMiArMHgwMSkpIHwg KEkuQUYuYi5oICYgMHgwMSk7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAg ICAgICAgICAgICAgIGNhc2UgMHgwODoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEkuY3B1 dHlwZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0g MTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBpbnQgcSA9IEkuSEwuYi5sLUku QkMuYi5sOyBJLkFGLmIubD1aU1txJjI1NV18KChxPj44KSYweDAxKXwweDAyfCAoKEkuSEwuYi5s XnFeSS5CQy5iLmwpJjB4MTApfCAoKChJLkJDLmIubF5JLkhMLmIubCkmKEkuSEwuYi5sXnEpJjB4 ODApPj41KTsgSS5ITC5iLmw9cTsgcSA9IEkuSEwuYi5oLUkuQkMuYi5oLShJLkFGLmIubCYweDAx KTsgSS5BRi5iLmw9WlNbcSYyNTVdfCgocT4+OCkmMHgwMSl8MHgwMnwgKChJLkhMLmIuaF5xXkku QkMuYi5oKSYweDEwKXwgKCgoSS5CQy5iLmheSS5ITC5iLmgpJihJLkhMLmIuaF5xKSYweDgwKT4+ NSk7IGlmIChJLkhMLmIubCE9MCkgSS5BRi5iLmwmPX4weDQwOyB9OwogICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lD b3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsbGVnYWwoKTsKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgICAgICAgIGNhc2UgMHgwOTogaTgwODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAg ICAgICAgICAgICBhc20gKCAiIGFuZGIgJDB4YzQsJTEgICAgICAgIFxuIiAiIGFkZGIgJSVhbCwl JWNsICAgICAgIFxuIiAiIGFkY2IgJSVhaCwlJWNoICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAg ICAgICAgIFxuIiAiIGFuZGIgJDB4MTEsJSVhaCAgICAgIFxuIiAiIG9yYiAlJWFoLCUxICAgICAg ICAgIFxuIiA6Ij1jIiAoSS5ITC5kKSwgIj1nIiAoSS5BRi5iLmwpIDoiMCIgKEkuSEwuZCksICIx IiAoSS5BRi5iLmwpLCAiYSIgKEkuQkMuZCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MGE6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAg ICAgICAgICAgICAgICAgICBJLkFGLmIuaCA9IFJNKEkuQkMuZCk7CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDBiOiBpODA4NV9JQ291bnQgLT0g NTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5CQy53LmwtLTsKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKEkuQkMuYi5sID09IDB4ZmYpIEkuQUYuYi5sIHw9IDB4MDg7IGVsc2UgSS5BRi5i LmwgJj0gfjB4MDg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg ICAgY2FzZSAweDBjOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAg KytJLkJDLmIubDsgSS5BRi5iLmw9KEkuQUYuYi5sJjB4MDEpfFpTW0kuQkMuYi5sXXwoKEkuQkMu Yi5sPT0weDgwKT8weDA0OjApfCgoSS5CQy5iLmwmMHgwRik/MDoweDEwKTsKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MGQ6IGk4MDg1X0lDb3Vu dCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIubD0oSS5BRi5iLmwmMHgwMSl8 MHgwMnwoKEkuQkMuYi5sPT0weDgwKT8weDA0OjApfCgoSS5CQy5iLmwmMHgwRik/MDoweDEwKTsg SS5BRi5iLmx8PVpTWy0tSS5CQy5iLmxdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgICAgIGNhc2UgMHgwZTogaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAg ICAgICAgICAgICAgIEkuQkMuYi5sPUFSRygpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgICAgIGNhc2UgMHgwZjogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAg ICAgICAgICAgICAgICAgIHsgSS5BRi5iLmwgPSAoSS5BRi5iLmwgJiB+KDB4MTAgKzB4MDIgKzB4 MDEpKSB8IChJLkFGLmIuaCAmIDB4MDEpOyBJLkFGLmIuaCA9IChJLkFGLmIuaCA+PiAxKSB8IChJ LkFGLmIuaCA8PCA3KTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAg ICAgICAgICAgY2FzZSAweDEwOgogICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5jcHV0eXBl ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSA3Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5sID0gKEkuQUYuYi5sICYgfjB4 MDEpIHwgKEkuSEwuYi5sICYgMHgwMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SS5ITC53LmwgPSAoSS5ITC53LmwgPj4gMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDg7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbCgpOwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg Y2FzZSAweDExOiBpODA4NV9JQ291bnQgLT0gMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIEku REUudy5sID0gQVJHMTYoKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICBjYXNlIDB4MTI6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAg ICAgICBXTShJLkRFLmQsIEkuQUYuYi5oKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICBjYXNlIDB4MTM6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAg ICAgICAgICAgICAgICBJLkRFLncubCsrOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoSS5E RS5iLmwgPT0gMHgwMCkgSS5BRi5iLmwgfD0gMHgwODsgZWxzZSBJLkFGLmIubCAmPSB+MHgwODsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MTQ6 IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICArK0kuREUuYi5oOyBJ LkFGLmIubD0oSS5BRi5iLmwmMHgwMSl8WlNbSS5ERS5iLmhdfCgoSS5ERS5iLmg9PTB4ODApPzB4 MDQ6MCl8KChJLkRFLmIuaCYweDBGKT8wOjB4MTApOwogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgxNTogaTgwODVfSUNvdW50IC09IDU7CiAgICAg ICAgICAgICAgICAgICAgICAgIEkuQUYuYi5sPShJLkFGLmIubCYweDAxKXwweDAyfCgoSS5ERS5i Lmg9PTB4ODApPzB4MDQ6MCl8KChJLkRFLmIuaCYweDBGKT8wOjB4MTApOyBJLkFGLmIubHw9WlNb LS1JLkRFLmIuaF07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg ICAgY2FzZSAweDE2OiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAg SS5ERS5iLmg9QVJHKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweDE3OiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAg ICAgeyBpbnQgYyA9IEkuQUYuYi5sJjB4MDE7IEkuQUYuYi5sID0gKEkuQUYuYi5sICYgfigweDEw ICsweDAyICsweDAxKSkgfCAoSS5BRi5iLmggPj4gNyk7IEkuQUYuYi5oID0gKEkuQUYuYi5oIDw8 IDEpIHwgYzsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAg ICAgY2FzZSAweDE4OgogICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5jcHV0eXBlICkgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIubCA9IChJLkFGLmIubCAmIH4oMHgwMSB8 IDB4MDQpKSB8IChJLkRFLmIuaCA+PiA3KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJLkRFLncubCA9IChJLkRFLncubCA8PCAxKSB8IChJLkRFLncubCA+PiAxNSk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT0gKCgoSS5ERS53LmwgPj4gMTUpIF4gSS5B Ri5iLmwpICYgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ LkFGLmIubCB8PSAweDA0OwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlsbGVnYWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgxOTog aTgwODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIGFuZGIg JDB4YzQsJTEgICAgICAgIFxuIiAiIGFkZGIgJSVhbCwlJWNsICAgICAgIFxuIiAiIGFkY2IgJSVh aCwlJWNoICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIGFuZGIgJDB4MTEs JSVhaCAgICAgIFxuIiAiIG9yYiAlJWFoLCUxICAgICAgICAgIFxuIiA6Ij1jIiAoSS5ITC5kKSwg Ij1nIiAoSS5BRi5iLmwpIDoiMCIgKEkuSEwuZCksICIxIiAoSS5BRi5iLmwpLCAiYSIgKEkuREUu ZCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNl IDB4MWE6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIu aCA9IFJNKEkuREUuZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweDFiOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAg ICAgSS5ERS53LmwtLTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuREUuYi5sID09IDB4 ZmYpIEkuQUYuYi5sIHw9IDB4MDg7IGVsc2UgSS5BRi5iLmwgJj0gfjB4MDg7CiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDFjOiBpODA4NV9JQ291 bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgKytJLkRFLmIubDsgSS5BRi5iLmw9KEku QUYuYi5sJjB4MDEpfFpTW0kuREUuYi5sXXwoKEkuREUuYi5sPT0weDgwKT8weDA0OjApfCgoSS5E RS5iLmwmMHgwRik/MDoweDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICAgICBjYXNlIDB4MWQ6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAg ICAgICAgICBJLkFGLmIubD0oSS5BRi5iLmwmMHgwMSl8MHgwMnwoKEkuREUuYi5sPT0weDgwKT8w eDA0OjApfCgoSS5ERS5iLmwmMHgwRik/MDoweDEwKTsgSS5BRi5iLmx8PVpTWy0tSS5ERS5iLmxd OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgx ZTogaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuREUuYi5sPUFS RygpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2Ug MHgxZjogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaW50IGMg PSAoSS5BRi5iLmwmMHgwMSkgPDwgNzsgSS5BRi5iLmwgPSAoSS5BRi5iLmwgJiB+KDB4MTAgKzB4 MDIgKzB4MDEpKSB8IChJLkFGLmIuaCAmIDB4MDEpOyBJLkFGLmIuaCA9IChJLkFGLmIuaCA+PiAx KSB8IGM7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAg IGNhc2UgMHgyMDoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEkuY3B1dHlwZSApIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCA9IEkuSU07CgogICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lD b3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDIxOiBpODA4NV9JQ291bnQgLT0gMTA7 CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwudy5sID0gQVJHMTYoKTsKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MjI6IGk4MDg1X0lDb3Vu dCAtPSAxNjsKICAgICAgICAgICAgICAgICAgICAgICAgSS5YWC53LmwgPSBBUkcxNigpOwogICAg ICAgICAgICAgICAgICAgICAgICBXTShJLlhYLmQsIEkuSEwuYi5sKTsKICAgICAgICAgICAgICAg ICAgICAgICAgSS5YWC53LmwrKzsKICAgICAgICAgICAgICAgICAgICAgICAgV00oSS5YWC5kLCBJ LkhMLmIuaCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg Y2FzZSAweDIzOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5I TC53LmwrKzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuSEwuYi5sID09IDB4MDApIEku QUYuYi5sIHw9IDB4MDg7IGVsc2UgSS5BRi5iLmwgJj0gfjB4MDg7CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDI0OiBpODA4NV9JQ291bnQgLT0g NTsKICAgICAgICAgICAgICAgICAgICAgICAgKytJLkhMLmIuaDsgSS5BRi5iLmw9KEkuQUYuYi5s JjB4MDEpfFpTW0kuSEwuYi5oXXwoKEkuSEwuYi5oPT0weDgwKT8weDA0OjApfCgoSS5ITC5iLmgm MHgwRik/MDoweDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBjYXNlIDB4MjU6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAg ICBJLkFGLmIubD0oSS5BRi5iLmwmMHgwMSl8MHgwMnwoKEkuSEwuYi5oPT0weDgwKT8weDA0OjAp fCgoSS5ITC5iLmgmMHgwRik/MDoweDEwKTsgSS5BRi5iLmx8PVpTWy0tSS5ITC5iLmhdOwogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgyNjogaTgw ODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwuYi5oPUFSRygpOwog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgyNzog aTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuWFguZCA9IEkuQUYu Yi5oOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoSS5BRi5iLmwgJiAweDAxKSBJLlhYLmQg fD0gMHgxMDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChJLkFGLmIubCAmIDB4MTApIEku WFguZCB8PSAweDIwMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuQUYuYi5sICYgMHgw MikgSS5YWC5kIHw9IDB4NDAwOwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLncubCA9IERB QVtJLlhYLmRdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAg ICBjYXNlIDB4Mjg6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBJLmNwdXR5cGUgKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDEwOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEkuWFguZCA9IEFSRygpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEkuREUuZCA9IChJLkhMLmQgKyBJLlhYLmQpICYgMHhmZmZmOwogICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGls bGVnYWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgyOTogaTgwODVfSUNvdW50IC09IDEwOwog ICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIGFuZGIgJDB4YzQsJTEgICAgICAgIFxuIiAi IGFkZGIgJSVhbCwlJWNsICAgICAgIFxuIiAiIGFkY2IgJSVhaCwlJWNoICAgICAgIFxuIiAiIGxh aGYgICAgICAgICAgICAgICAgIFxuIiAiIGFuZGIgJDB4MTEsJSVhaCAgICAgIFxuIiAiIG9yYiAl JWFoLCUxICAgICAgICAgIFxuIiA6Ij1jIiAoSS5ITC5kKSwgIj1nIiAoSS5BRi5iLmwpIDoiMCIg KEkuSEwuZCksICIxIiAoSS5BRi5iLmwpLCAiYSIgKEkuSEwuZCkgKTsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MmE6IGk4MDg1X0lDb3VudCAt PSAxNjsKICAgICAgICAgICAgICAgICAgICAgICAgSS5YWC5kID0gQVJHMTYoKTsKICAgICAgICAg ICAgICAgICAgICAgICAgSS5ITC5iLmwgPSBSTShJLlhYLmQpOwogICAgICAgICAgICAgICAgICAg ICAgICBJLlhYLncubCsrOwogICAgICAgICAgICAgICAgICAgICAgICBJLkhMLmIuaCA9IFJNKEku WFguZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2Fz ZSAweDJiOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ITC53 LmwtLTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuSEwuYi5sID09IDB4ZmYpIEkuQUYu Yi5sIHw9IDB4MDg7IGVsc2UgSS5BRi5iLmwgJj0gfjB4MDg7CiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDJjOiBpODA4NV9JQ291bnQgLT0gNTsK ICAgICAgICAgICAgICAgICAgICAgICAgKytJLkhMLmIubDsgSS5BRi5iLmw9KEkuQUYuYi5sJjB4 MDEpfFpTW0kuSEwuYi5sXXwoKEkuSEwuYi5sPT0weDgwKT8weDA0OjApfCgoSS5ITC5iLmwmMHgw Rik/MDoweDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICBjYXNlIDB4MmQ6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJ LkFGLmIubD0oSS5BRi5iLmwmMHgwMSl8MHgwMnwoKEkuSEwuYi5sPT0weDgwKT8weDA0OjApfCgo SS5ITC5iLmwmMHgwRik/MDoweDEwKTsgSS5BRi5iLmx8PVpTWy0tSS5ITC5iLmxdOwogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgyZTogaTgwODVf SUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwuYi5sPUFSRygpOwogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgyZjogaTgw ODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5oIF49IDB4ZmY7 CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5sIHw9IDB4MTAgKyAweDAyOwogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDB4MzA6CiAgICAg ICAgICAgICAgICAgICAgICAgIGlmKCBJLmNwdXR5cGUgKSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKChJLklNIF4gSS5BRi5iLmgpICYgMHg4MCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChJLnNvZF9jYWxsYmFjaykgKCpJLnNvZF9jYWxsYmFjayko SS5BRi5iLmggPj4gNyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS5JTSAmPSAo MHg4MCArIDB4MjAgKyAweDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJLklN IHw9IChJLkFGLmIuaCAmIH4oMHg4MCArIDB4NDAgKyAweDIwICsgMHgxMCkpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChJLkFGLmIuaCAmIDB4ODApIEkuSU0gfD0gMHg0MDsK ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgzMTogaTgw ODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAgICAgICAgICAgICBJLlNQLncubCA9IEFSRzE2 KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAw eDMyOiBpODA4NV9JQ291bnQgLT0gMTM7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuWFguZCA9 IEFSRzE2KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIFdNKEkuWFguZCwgSS5BRi5iLmgpOwog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgzMzog aTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuU1Audy5sKys7CiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChJLlNQLmIubCA9PSAweDAwKSBJLkFGLmIubCB8PSAw eDA4OyBlbHNlIEkuQUYuYi5sICY9IH4weDA4OwogICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgICAgIGNhc2UgMHgzNDogaTgwODVfSUNvdW50IC09IDEwOwogICAgICAg ICAgICAgICAgICAgICAgICBJLlhYLmIubCA9IFJNKEkuSEwuZCk7CiAgICAgICAgICAgICAgICAg ICAgICAgICsrSS5YWC5iLmw7IEkuQUYuYi5sPShJLkFGLmIubCYweDAxKXxaU1tJLlhYLmIubF18 KChJLlhYLmIubD09MHg4MCk/MHgwNDowKXwoKEkuWFguYi5sJjB4MEYpPzA6MHgxMCk7CiAgICAg ICAgICAgICAgICAgICAgICAgIFdNKEkuSEwuZCwgSS5YWC5iLmwpOwogICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgzNTogaTgwODVfSUNvdW50IC09 IDEwOwogICAgICAgICAgICAgICAgICAgICAgICBJLlhYLmIubCA9IFJNKEkuSEwuZCk7CiAgICAg ICAgICAgICAgICAgICAgICAgIEkuQUYuYi5sPShJLkFGLmIubCYweDAxKXwweDAyfCgoSS5YWC5i Lmw9PTB4ODApPzB4MDQ6MCl8KChJLlhYLmIubCYweDBGKT8wOjB4MTApOyBJLkFGLmIubHw9WlNb LS1JLlhYLmIubF07CiAgICAgICAgICAgICAgICAgICAgICAgIFdNKEkuSEwuZCwgSS5YWC5iLmwp OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgz NjogaTgwODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAgICAgICAgICAgICBJLlhYLmIubCA9 IEFSRygpOwogICAgICAgICAgICAgICAgICAgICAgICBXTShJLkhMLmQsIEkuWFguYi5sKTsKICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4Mzc6IGk4 MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIubCA9IChJLkFG LmIubCAmIH4oMHgxMCArIDB4MDIpKSB8IDB4MDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMHgzODoKICAgICAgICAgICAgICAgICAgICAgICAg aWYoIEkuY3B1dHlwZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9J Q291bnQgLT0gMTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS5YWC5kID0gQVJH KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS5ERS5kID0gKEkuU1AuZCArIEku WFguZCkgJiAweGZmZmY7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWxsZWdhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDM5OiBp ODA4NV9JQ291bnQgLT0gMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgYW5kYiAk MHhjNCwlMSAgICAgICAgXG4iICIgYWRkYiAlJWFsLCUlY2wgICAgICAgXG4iICIgYWRjYiAlJWFo LCUlY2ggICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgYW5kYiAkMHgxMSwl JWFoICAgICAgXG4iICIgb3JiICUlYWgsJTEgICAgICAgICAgXG4iIDoiPWMiIChJLkhMLmQpLCAi PWciIChJLkFGLmIubCkgOiIwIiAoSS5ITC5kKSwgIjEiIChJLkFGLmIubCksICJhIiAoSS5TUC5k KSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2Ug MHgzYTogaTgwODVfSUNvdW50IC09IDEzOwogICAgICAgICAgICAgICAgICAgICAgICBJLlhYLmQg PSBBUkcxNigpOwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCA9IFJNKEkuWFguZCk7 CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDNi OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5TUC53LmwtLTsK ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuU1AuYi5sID09IDB4ZmYpIEkuQUYuYi5sIHw9 IDB4MDg7IGVsc2UgSS5BRi5iLmwgJj0gfjB4MDg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDNjOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAg ICAgICAgICAgICAgICAgICAgKytJLkFGLmIuaDsgSS5BRi5iLmw9KEkuQUYuYi5sJjB4MDEpfFpT W0kuQUYuYi5oXXwoKEkuQUYuYi5oPT0weDgwKT8weDA0OjApfCgoSS5BRi5iLmgmMHgwRik/MDow eDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNl IDB4M2Q6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIu bD0oSS5BRi5iLmwmMHgwMSl8MHgwMnwoKEkuQUYuYi5oPT0weDgwKT8weDA0OjApfCgoSS5BRi5i LmgmMHgwRik/MDoweDEwKTsgSS5BRi5iLmx8PVpTWy0tSS5BRi5iLmhdOwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgzZTogaTgwODVfSUNvdW50 IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5oPUFSRygpOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHgzZjogaTgwODVfSUNv dW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5sID0gKChJLkFGLmIubCAm IH4oMHgxMCArIDB4MDIpKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKEkuQUYuYi5sICYgMHgwMSkgPDwgNCkpIF4gMHgwMTsKICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAweDQwOiBpODA4NV9JQ291bnQgLT0g NTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAw eDQxOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5CQy5iLmgg PSBJLkJDLmIubDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICBjYXNlIDB4NDI6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJ LkJDLmIuaCA9IEkuREUuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgICAgIGNhc2UgMHg0MzogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAg ICAgICAgIEkuQkMuYi5oID0gSS5ERS5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgICAgY2FzZSAweDQ0OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAg ICAgICAgICAgICAgICAgSS5CQy5iLmggPSBJLkhMLmIuaDsKICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NDU6IGk4MDg1X0lDb3VudCAtPSA1Owog ICAgICAgICAgICAgICAgICAgICAgICBJLkJDLmIuaCA9IEkuSEwuYi5sOwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg0NjogaTgwODVfSUNvdW50 IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQkMuYi5oID0gUk0oSS5ITC5kKTsKICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NDc6IGk4 MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkJDLmIuaCA9IEkuQUYu Yi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNl IDB4NDg6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkJDLmIu bCA9IEkuQkMuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHg0OTogaTgwODVfSUNvdW50IC09IDU7CgogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg0YTogaTgwODVfSUNvdW50IC09IDU7CiAg ICAgICAgICAgICAgICAgICAgICAgIEkuQkMuYi5sID0gSS5ERS5iLmg7CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDRiOiBpODA4NV9JQ291bnQg LT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5CQy5iLmwgPSBJLkRFLmIubDsKICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NGM6IGk4MDg1 X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkJDLmIubCA9IEkuSEwuYi5o OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg0 ZDogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQkMuYi5sID0g SS5ITC5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg Y2FzZSAweDRlOiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgSS5C Qy5iLmwgPSBSTShJLkhMLmQpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgICAgIGNhc2UgMHg0ZjogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAg ICAgICAgIEkuQkMuYi5sID0gSS5BRi5iLmg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwoKICAgICAgICAgICAgICAgIGNhc2UgMHg1MDogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAg ICAgICAgICAgICAgICAgIEkuREUuYi5oID0gSS5CQy5iLmg7CiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDUxOiBpODA4NV9JQ291bnQgLT0gNTsK ICAgICAgICAgICAgICAgICAgICAgICAgSS5ERS5iLmggPSBJLkJDLmIubDsKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NTI6IGk4MDg1X0lDb3Vu dCAtPSA1OwoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBj YXNlIDB4NTM6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkRF LmIuaCA9IEkuREUuYi5sOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgICAgIGNhc2UgMHg1NDogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAg ICAgIEkuREUuYi5oID0gSS5ITC5iLmg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgICAgY2FzZSAweDU1OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAg ICAgICAgICAgICAgSS5ERS5iLmggPSBJLkhMLmIubDsKICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NTY6IGk4MDg1X0lDb3VudCAtPSA3OwogICAg ICAgICAgICAgICAgICAgICAgICBJLkRFLmIuaCA9IFJNKEkuSEwuZCk7CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDU3OiBpODA4NV9JQ291bnQg LT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ERS5iLmggPSBJLkFGLmIuaDsKICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAweDU4OiBpODA4 NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ERS5iLmwgPSBJLkJDLmIu aDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4 NTk6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkRFLmIubCA9 IEkuQkMuYi5sOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg IGNhc2UgMHg1YTogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEku REUuYi5sID0gSS5ERS5iLmg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgICAgY2FzZSAweDViOiBpODA4NV9JQ291bnQgLT0gNTsKCiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDVjOiBpODA4NV9JQ291bnQgLT0g NTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ERS5iLmwgPSBJLkhMLmIuaDsKICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NWQ6IGk4MDg1X0lD b3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkRFLmIubCA9IEkuSEwuYi5sOwog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg1ZTog aTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuREUuYi5sID0gUk0o SS5ITC5kKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBj YXNlIDB4NWY6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkRF LmIubCA9IEkuQUYuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAg ICAgICAgICBjYXNlIDB4NjA6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAg ICAgICBJLkhMLmIuaCA9IEkuQkMuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgICAgIGNhc2UgMHg2MTogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAg ICAgICAgICAgICAgIEkuSEwuYi5oID0gSS5CQy5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDYyOiBpODA4NV9JQ291bnQgLT0gNTsKICAg ICAgICAgICAgICAgICAgICAgICAgSS5ITC5iLmggPSBJLkRFLmIuaDsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NjM6IGk4MDg1X0lDb3VudCAt PSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkhMLmIuaCA9IEkuREUuYi5sOwogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg2NDogaTgwODVf SUNvdW50IC09IDU7CgogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHg2NTogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAg IEkuSEwuYi5oID0gSS5ITC5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgICAgY2FzZSAweDY2OiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAg ICAgICAgICAgSS5ITC5iLmggPSBSTShJLkhMLmQpOwogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg2NzogaTgwODVfSUNvdW50IC09IDU7CiAgICAg ICAgICAgICAgICAgICAgICAgIEkuSEwuYi5oID0gSS5BRi5iLmg7CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMHg2ODogaTgwODVfSUNvdW50IC09 IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwuYi5sID0gSS5CQy5iLmg7CiAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDY5OiBpODA4NV9J Q291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ITC5iLmwgPSBJLkJDLmIubDsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NmE6 IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBJLkhMLmIubCA9IEku REUuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNh c2UgMHg2YjogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwu Yi5sID0gSS5ERS5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweDZjOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAg ICAgSS5ITC5iLmwgPSBJLkhMLmIuaDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgICAgICAgICBjYXNlIDB4NmQ6IGk4MDg1X0lDb3VudCAtPSA1OwoKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4NmU6IGk4MDg1X0lDb3Vu dCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICBJLkhMLmIubCA9IFJNKEkuSEwuZCk7CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDZmOiBp ODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5ITC5iLmwgPSBJLkFG LmIuaDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2Fz ZSAweDcwOiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgV00oSS5I TC5kLCBJLkJDLmIuaCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweDcxOiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAg ICAgV00oSS5ITC5kLCBJLkJDLmIubCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgICAgY2FzZSAweDcyOiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAg ICAgICAgICAgICAgV00oSS5ITC5kLCBJLkRFLmIuaCk7CiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDczOiBpODA4NV9JQ291bnQgLT0gNzsKICAg ICAgICAgICAgICAgICAgICAgICAgV00oSS5ITC5kLCBJLkRFLmIubCk7CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDc0OiBpODA4NV9JQ291bnQg LT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgV00oSS5ITC5kLCBJLkhMLmIuaCk7CiAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDc1OiBpODA4 NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgV00oSS5ITC5kLCBJLkhMLmIu bCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAw eDc2OiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgSS5QQy53Lmwt LTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5IQUxUID0gMTsKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGk4MDg1X0lDb3VudCA+IDApIGk4MDg1X0lDb3VudCA9IDA7CiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDc3OiBpODA4NV9JQ291 bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgV00oSS5ITC5kLCBJLkFGLmIuaCk7CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMHg3ODog aTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5oID0gSS5C Qy5iLmg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2Fz ZSAweDc5OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5BRi5i LmggPSBJLkJDLmIubDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBjYXNlIDB4N2E6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAg ICBJLkFGLmIuaCA9IEkuREUuYi5oOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgICAgICAgIGNhc2UgMHg3YjogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAg ICAgICAgICAgIEkuQUYuYi5oID0gSS5ERS5iLmw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDdjOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAg ICAgICAgICAgICAgICAgICAgSS5BRi5iLmggPSBJLkhMLmIuaDsKICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4N2Q6IGk4MDg1X0lDb3VudCAtPSA1 OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCA9IEkuSEwuYi5sOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg3ZTogaTgwODVfSUNv dW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5oID0gUk0oSS5ITC5kKTsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4N2Y6 IGk4MDg1X0lDb3VudCAtPSA1OwoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAg ICAgICAgICAgICAgY2FzZSAweDgwOiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAg ICAgICAgICAgYXNtICggIiBhZGRiICUyLCUwICAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAg ICAgICAgICBcbiIgIiBzZXRvYiAlJWFsICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAg ICAgICBcbiIgIiBhbmRiICQweGQxLCUlYWggICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAg ICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuQkMuYi5oKSwg IjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICBjYXNlIDB4ODE6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAg ICAgICBhc20gKCAiIGFkZGIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAg ICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAg IFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxu IiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5CQy5iLmwpLCAiMCIg KEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHg4MjogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAg IGFzbSAoICIgYWRkYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAg XG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4i ICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoi PWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkRFLmIuaCksICIwIiAoSS5B Ri5iLmgpICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg Y2FzZSAweDgzOiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNt ICggIiBhZGRiICUyLCUwICAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgICBcbiIg IiBzZXRvYiAlJWFsICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgICBcbiIgIiBh bmRiICQweGQxLCUlYWggICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgICBcbiIgOiI9ZyIg KEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuREUuYi5sKSwgIjAiIChJLkFGLmIu aCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNl IDB4ODQ6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAi IGFkZGIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIHNl dG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFuZGIg JDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5B Ri5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5ITC5iLmgpLCAiMCIgKEkuQUYuYi5oKSAp OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4 NTogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgYWRk YiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2Ig JSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhk MSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIu aCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkhMLmIubCksICIwIiAoSS5BRi5iLmgpICk7CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDg2OiBp ODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBhZGRiICUy LCUwICAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgICBcbiIgIiBzZXRvYiAlJWFs ICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgICBcbiIgIiBhbmRiICQweGQxLCUl YWggICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwg Ij1hIiAoSS5BRi5iLmwpIDoiciIgKFJNKEkuSEwuZCkpLCAiMCIgKEkuQUYuYi5oKSApOwogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4NzogaTgw ODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgYWRkYiAlMiwl MCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAg ICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFo ICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9 YSIgKEkuQUYuYi5sKSA6InIiIChJLkFGLmIuaCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMHg4ODogaTgwODVf SUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFs ICAgICAgICAgXG4iICIgYWRjYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAg ICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAg ICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAg XG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkJDLmIuaCksICJh IiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4OTogaTgwODVfSUNvdW50IC09IDQ7CiAgICAg ICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4iICIgYWRj YiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2Ig JSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhk MSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIu aCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkJDLmIubCksICJhIiAoSS5BRi5iLmwpLCAiMCIg KEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHg4YTogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAg IGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4iICIgYWRjYiAlMiwlMCAgICAgICAgICAg XG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4i ICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIg b3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5s KSA6InIiIChJLkRFLmIuaCksICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4YjogaTgw ODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwl JWFsICAgICAgICAgXG4iICIgYWRjYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAg ICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAg ICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAg ICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkRFLmIubCks ICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4YzogaTgwODVfSUNvdW50IC09IDQ7CiAg ICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4iICIg YWRjYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0 b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAk MHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFG LmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkhMLmIuaCksICJhIiAoSS5BRi5iLmwpLCAi MCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgICAgIGNhc2UgMHg4ZDogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAg ICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4iICIgYWRjYiAlMiwlMCAgICAgICAg ICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAg XG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4i ICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYu Yi5sKSA6InIiIChJLkhMLmIubCksICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg4ZTog aTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAk MSwlJWFsICAgICAgICAgXG4iICIgYWRjYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAg ICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFs ICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAg ICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChSTShJLkhM LmQpKSwgImEiIChJLkFGLmIubCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDhmOiBpODA4NV9JQ291bnQgLT0g NDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBzaHJiICQxLCUlYWwgICAgICAgICBc biIgIiBhZGNiICUyLCUwICAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgICBcbiIg IiBzZXRvYiAlJWFsICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgICBcbiIgIiBh bmRiICQweGQxLCUlYWggICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgICBcbiIgOiI9ZyIg KEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuQUYuYi5oKSwgImEiIChJLkFGLmIu bCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAg ICAgICAgICAgICAgIGNhc2UgMHg5MDogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAg ICAgICAgICAgIGFzbSAoICIgc3ViYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAg ICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAg ICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICQyLCUlYWwgICAgICAg ICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIg KEkuQUYuYi5sKSA6InIiIChJLkJDLmIuaCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDkxOiBpODA4NV9JQ291 bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBzdWJiICUyLCUwICAgICAg ICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgICBcbiIgIiBzZXRvYiAlJWFsICAgICAgICAg ICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgICBcbiIgIiBhbmRiICQweGQxLCUlYWggICAgICBc biIgIiBvcmIgJDIsJSVhbCAgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgICBcbiIg OiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuQkMuYi5sKSwgIjAiIChJ LkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICBjYXNlIDB4OTI6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBh c20gKCAiIHN1YmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxu IiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAi IGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAiIG9y YiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkg OiJyIiAoSS5ERS5iLmgpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg5MzogaTgwODVfSUNvdW50IC09IDQ7CiAg ICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc3ViYiAlMiwlMCAgICAgICAgICAgXG4iICIg bGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hs YiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICQy LCUlYWwgICAgICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFG LmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLkRFLmIubCksICIwIiAoSS5BRi5iLmgpICk7 CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweDk0 OiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBzdWJi ICUyLCUwICAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgICBcbiIgIiBzZXRvYiAl JWFsICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgICBcbiIgIiBhbmRiICQweGQx LCUlYWggICAgICBcbiIgIiBvcmIgJDIsJSVhbCAgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFs ICAgICAgICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuSEwu Yi5oKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgICAgICAgICBjYXNlIDB4OTU6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAg ICAgICAgICAgICBhc20gKCAiIHN1YmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAg ICAgICAgICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAg ICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAg ICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEi IChJLkFGLmIubCkgOiJyIiAoSS5ITC5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg5NjogaTgwODVfSUNv dW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc3ViYiAlMiwlMCAgICAg ICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAg ICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAg XG4iICIgb3JiICQyLCUlYWwgICAgICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4i IDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChSTShJLkhMLmQpKSwgIjAi IChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBjYXNlIDB4OTc6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAg ICBhc20gKCAiIHN1YmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAg IFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxu IiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAi IG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIu bCkgOiJyIiAoSS5BRi5iLmgpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDB4OTg6IGk4MDg1X0lDb3VudCAtPSA0 OwogICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIHNocmIgJDEsJSVhbCAgICAgICAgIFxu IiAiIHNiYmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAi IHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFu ZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAiIG9yYiAl JWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJy IiAoSS5CQy5iLmgpLCAiYSIgKEkuQUYuYi5sKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4OTk6IGk4MDg1X0lD b3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIHNocmIgJDEsJSVhbCAg ICAgICAgIFxuIiAiIHNiYmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAg ICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAg IFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxu IiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFG LmIubCkgOiJyIiAoSS5CQy5iLmwpLCAiYSIgKEkuQUYuYi5sKSwgIjAiIChJLkFGLmIuaCkgKTsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4OWE6 IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIHNocmIg JDEsJSVhbCAgICAgICAgIFxuIiAiIHNiYmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAg ICAgICAgICAgICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVh bCAgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAg ICAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAi PWEiIChJLkFGLmIubCkgOiJyIiAoSS5ERS5iLmgpLCAiYSIgKEkuQUYuYi5sKSwgIjAiIChJLkFG LmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBj YXNlIDB4OWI6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBhc20g KCAiIHNocmIgJDEsJSVhbCAgICAgICAgIFxuIiAiIHNiYmIgJTIsJTAgICAgICAgICAgIFxuIiAi IGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNo bGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAk MiwlJWFsICAgICAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5B Ri5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5ERS5iLmwpLCAiYSIgKEkuQUYuYi5sKSwg IjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICBjYXNlIDB4OWM6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAg ICAgICBhc20gKCAiIHNocmIgJDEsJSVhbCAgICAgICAgIFxuIiAiIHNiYmIgJTIsJTAgICAgICAg ICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIHNldG9iICUlYWwgICAgICAgICAg IFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgIFxu IiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgIFxuIiA6 Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5ITC5iLmgpLCAiYSIgKEku QUYuYi5sKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICBjYXNlIDB4OWQ6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAg ICAgICAgICAgICAgICBhc20gKCAiIHNocmIgJDEsJSVhbCAgICAgICAgIFxuIiAiIHNiYmIgJTIs JTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIHNldG9iICUlYWwg ICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVh aCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAiIG9yYiAlJWFoLCUlYWwgICAg ICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5ITC5iLmwp LCAiYSIgKEkuQUYuYi5sKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4OWU6IGk4MDg1X0lDb3VudCAtPSA3Owog ICAgICAgICAgICAgICAgICAgICAgICBhc20gKCAiIHNocmIgJDEsJSVhbCAgICAgICAgIFxuIiAi IHNiYmIgJTIsJTAgICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgIFxuIiAiIHNl dG9iICUlYWwgICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgIFxuIiAiIGFuZGIg JDB4ZDEsJSVhaCAgICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgIFxuIiAiIG9yYiAlJWFo LCUlYWwgICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAo Uk0oSS5ITC5kKSksICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHg5ZjogaTgwODVfSUNv dW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAg ICAgICAgXG4iICIgc2JiYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAg ICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAg XG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICQyLCUlYWwgICAgICAgICAgXG4i ICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYu Yi5sKSA6InIiIChJLkFGLmIuaCksICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwog ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDB4YTA6 IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCY9SS5C Qy5iLmg7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF18MHgxMDsKICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YTE6IGk4MDg1X0lDb3VudCAtPSA0Owog ICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCY9SS5CQy5iLmw7IEkuQUYuYi5sPVpTUFtJ LkFGLmIuaF18MHgxMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBjYXNlIDB4YTI6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAg ICBJLkFGLmIuaCY9SS5ERS5iLmg7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF18MHgxMDsKICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YTM6IGk4MDg1 X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCY9SS5ERS5iLmw7 IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF18MHgxMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YTQ6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAg ICAgICAgICAgICAgICAgICBJLkFGLmIuaCY9SS5ITC5iLmg7IEkuQUYuYi5sPVpTUFtJLkFGLmIu aF18MHgxMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBj YXNlIDB4YTU6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFG LmIuaCY9SS5ITC5iLmw7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF18MHgxMDsKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YTY6IGk4MDg1X0lDb3Vu dCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaCY9Uk0oSS5ITC5kKTsgSS5B Ri5iLmw9WlNQW0kuQUYuYi5oXXwweDEwOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgICAgIGNhc2UgMHhhNzogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAg ICAgICAgICAgICAgIEkuQUYuYi5oJj1JLkFGLmIuaDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXXww eDEwOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNl IDB4YTg6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIu aF49SS5CQy5iLmg7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF07CiAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGE5OiBpODA4NV9JQ291bnQgLT0gNDsK ICAgICAgICAgICAgICAgICAgICAgICAgSS5BRi5iLmhePUkuQkMuYi5sOyBJLkFGLmIubD1aU1Bb SS5BRi5iLmhdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg IGNhc2UgMHhhYTogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEku QUYuYi5oXj1JLkRFLmIuaDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXTsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YWI6IGk4MDg1X0lDb3VudCAt PSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaF49SS5ERS5iLmw7IEkuQUYuYi5s PVpTUFtJLkFGLmIuaF07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweGFjOiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAg ICAgSS5BRi5iLmhePUkuSEwuYi5oOyBJLkFGLmIubD1aU1BbSS5BRi5iLmhdOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhhZDogaTgwODVfSUNv dW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5oXj1JLkhMLmIubDsgSS5B Ri5iLmw9WlNQW0kuQUYuYi5oXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICAgICBjYXNlIDB4YWU6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAg ICAgICAgICBJLkFGLmIuaF49Uk0oSS5ITC5kKTsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXTsKICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YWY6IGk4 MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaF49SS5BRi5i Lmg7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwoKICAgICAgICAgICAgICAgIGNhc2UgMHhiMDogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAg ICAgICAgICAgICAgICAgIEkuQUYuYi5ofD1JLkJDLmIuaDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5o XTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4 YjE6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaHw9 SS5CQy5iLmw7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF07CiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGIyOiBpODA4NV9JQ291bnQgLT0gNDsKICAg ICAgICAgICAgICAgICAgICAgICAgSS5BRi5iLmh8PUkuREUuYi5oOyBJLkFGLmIubD1aU1BbSS5B Ri5iLmhdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNh c2UgMHhiMzogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYu Yi5ofD1JLkRFLmIubDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXTsKICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4YjQ6IGk4MDg1X0lDb3VudCAtPSA0 OwogICAgICAgICAgICAgICAgICAgICAgICBJLkFGLmIuaHw9SS5ITC5iLmg7IEkuQUYuYi5sPVpT UFtJLkFGLmIuaF07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg ICAgY2FzZSAweGI1OiBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAg SS5BRi5iLmh8PUkuSEwuYi5sOyBJLkFGLmIubD1aU1BbSS5BRi5iLmhdOwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhiNjogaTgwODVfSUNvdW50 IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuQUYuYi5ofD1STShJLkhMLmQpOyBJLkFG LmIubD1aU1BbSS5BRi5iLmhdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgICAgIGNhc2UgMHhiNzogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAg ICAgICAgIEkuQUYuYi5ofD1JLkFGLmIuaDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXTsKICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAweGI4OiBpODA4 NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBjbXBiICUyLCUw ICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAg ICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAg XG4iICIgb3JiICQyLCUlYWwgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgIFxuIiA6 Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5CQy5iLmgpLCAiMCIgKEku QUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg IGNhc2UgMHhiOTogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFz bSAoICIgY21wYiAlMiwlMCAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgIFxuIiAi IHNldG9iICUlYWwgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICBcbiIgIiBhbmRi ICQweGQxLCUlYWggICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgXG4iICIgb3JiICUlYWgs JSVhbCAgICAgICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEku QkMuYi5sKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICBjYXNlIDB4YmE6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAg ICAgICAgICAgICAgICBhc20gKCAiIGNtcGIgJTIsJTAgICAgICAgICAgXG4iICIgbGFoZiAgICAg ICAgICAgICAgICBcbiIgIiBzZXRvYiAlJWFsICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAg ICAgICAgXG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICBcbiIgIiBvcmIgJDIsJSVhbCAgICAgICAg IFxuIiAiIG9yYiAlJWFoLCUlYWwgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEku QUYuYi5sKSA6InIiIChJLkRFLmIuaCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGJiOiBpODA4NV9JQ291bnQg LT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBjbXBiICUyLCUwICAgICAgICAg IFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICBcbiIg IiBzaGxiICQyLCUlYWwgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgXG4iICIgb3Ji ICQyLCUlYWwgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgIFxuIiA6Ij1nIiAoSS5B Ri5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5ERS5iLmwpLCAiMCIgKEkuQUYuYi5oKSAp OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhi YzogaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgY21w YiAlMiwlMCAgICAgICAgICBcbiIgIiBsYWhmICAgICAgICAgICAgICAgIFxuIiAiIHNldG9iICUl YWwgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICBcbiIgIiBhbmRiICQweGQxLCUl YWggICAgIFxuIiAiIG9yYiAkMiwlJWFsICAgICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAg ICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuSEwuYi5oKSwg IjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICBjYXNlIDB4YmQ6IGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAgICAg ICAgICBhc20gKCAiIGNtcGIgJTIsJTAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAg ICBcbiIgIiBzZXRvYiAlJWFsICAgICAgICAgIFxuIiAiIHNobGIgJDIsJSVhbCAgICAgICAgXG4i ICIgYW5kYiAkMHhkMSwlJWFoICAgICBcbiIgIiBvcmIgJDIsJSVhbCAgICAgICAgIFxuIiAiIG9y YiAlJWFoLCUlYWwgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6 InIiIChJLkhMLmIubCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGJlOiBpODA4NV9JQ291bnQgLT0gNzsKICAg ICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBjbXBiICUyLCUwICAgICAgICAgIFxuIiAiIGxh aGYgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICBcbiIgIiBzaGxiICQy LCUlYWwgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgXG4iICIgb3JiICQyLCUlYWwg ICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgIFxuIiA6Ij1nIiAoSS5BRi5iLmgpLCAi PWEiIChJLkFGLmIubCkgOiJyIiAoUk0oSS5ITC5kKSksICIwIiAoSS5BRi5iLmgpICk7CiAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGJmOiBpODA4 NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBjbXBiICUyLCUw ICAgICAgICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAg ICAgICBcbiIgIiBzaGxiICQyLCUlYWwgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAg XG4iICIgb3JiICQyLCUlYWwgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgIFxuIiA6 Ij1nIiAoSS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5BRi5iLmgpLCAiMCIgKEku QUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAg ICBjYXNlIDB4YzA6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICB7 IGlmICghKEkuQUYuYi5sICYgMHg0MCkpIHsgaTgwODVfSUNvdW50IC09IDY7IHsgSS5QQy5iLmwg PSBSTShJLlNQLncubCsrKTsgSS5QQy5iLmggPSBSTShJLlNQLncubCsrKTsgfTsgZG8geyBpZiAo cmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkpIC0g KCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAyKSkg KyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3aGls ZSAoMCk7IH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICBjYXNlIDB4YzE6IGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAgICAgICAgICAgICAgICAgICAg eyBJLkJDLmIubCA9IFJNKEkuU1Audy5sKyspOyBJLkJDLmIuaCA9IFJNKEkuU1Audy5sKyspOyB9 OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhj MjogaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKCEoSS5B Ri5iLmwgJiAweDQwKSkgeyBpODA4NV9JQ291bnQgLT0gMzsgSS5QQy53LmwgPSBBUkcxNigpOyBk byB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYp LSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0 KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQp OyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGMzOiBpODA4NV9JQ291bnQgLT0g NzsKICAgICAgICAgICAgICAgICAgICAgICAgeyBpZiAoMSkgeyBpODA4NV9JQ291bnQgLT0gMzsg SS5QQy53LmwgPSBBUkcxNigpOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYg bWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/ IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNw dV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7 IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAw eGM0OiBpODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKCEo SS5BRi5iLmwgJiAweDQwKSkgeyBVSU5UMTYgYSA9IEFSRzE2KCk7IGk4MDg1X0lDb3VudCAtPSA2 OyB7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5iLmwpOyB9 OyBJLlBDLmQgPSBhOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2Ft YXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDog KCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRv cGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGM1OiBp ODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgV00oLS1JLlNQLncu bCwgSS5CQy5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLkJDLmIubCk7IH07CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGM2OiBpODA4NV9JQ291bnQg LT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgSS5YWC5iLmwgPSBBUkcoKTsKICAgICAgICAg ICAgICAgICAgICAgICAgYXNtICggIiBhZGRiICUyLCUwICAgICAgICAgICBcbiIgIiBsYWhmICAg ICAgICAgICAgICAgICBcbiIgIiBzZXRvYiAlJWFsICAgICAgICAgICBcbiIgIiBzaGxiICQyLCUl YWwgICAgICAgICBcbiIgIiBhbmRiICQweGQxLCUlYWggICAgICBcbiIgIiBvcmIgJSVhaCwlJWFs ICAgICAgICBcbiIgOiI9ZyIgKEkuQUYuYi5oKSwgIj1hIiAoSS5BRi5iLmwpIDoiciIgKEkuWFgu Yi5sKSwgIjAiIChJLkFGLmIuaCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhjNzogaTgwODVfSUNvdW50IC09IDExOwogICAg ICAgICAgICAgICAgICAgICAgICB7IHsgV00oLS1JLlNQLncubCwgSS5QQy5iLmgpOyBXTSgtLUku U1Audy5sLCBJLlBDLmIubCk7IH07IEkuUEMuZCA9IDggKiAwOyBkbyB7IGlmIChyZWFkbWVtX2xv b2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgw KSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAh PSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfTsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAweGM4 OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgeyBpZiAoSS5BRi5i LmwgJiAweDQwKSB7IGk4MDg1X0lDb3VudCAtPSA2OyB7IEkuUEMuYi5sID0gUk0oSS5TUC53Lmwr Kyk7IEkuUEMuYi5oID0gUk0oSS5TUC53LmwrKyk7IH07IGRvIHsgaWYgKHJlYWRtZW1fbG9va3Vw WygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDApKSAtICgoKCgxNiktKDApKSA8 ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8gMikpICsgKDApKSldICE9IG9w Y29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0gd2hpbGUgKDApOyB9IH07CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGM5OiBp ODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgeyBpZiAoMSkgeyBpODA4 NV9JQ291bnQgLT0gNjsgeyBJLlBDLmIubCA9IFJNKEkuU1Audy5sKyspOyBJLlBDLmIuaCA9IFJN KEkuU1Audy5sKyspOyB9OyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVt X2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEy IDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9z ZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSB9OwogICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhjYTogaTgwODVfSUNvdW50IC09IDc7 CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKEkuQUYuYi5sICYgMHg0MCkgeyBpODA4NV9J Q291bnQgLT0gMzsgSS5QQy53LmwgPSBBUkcxNigpOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFso KChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAo MioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNv ZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEku UEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweGNiOgogICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5jcHV0eXBlICkg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChJLkFGLmIubCAmIDB4MDQpIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSAx MjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyBXTSgtLUkuU1Au dy5sLCBJLlBDLmIuaCk7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5sKTsgfTsgSS5QQy5kID0gOCAq IDg7IGRvIHsgaWYgKHJlYWRtZW1fbG9va3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgo KCgxNiktKDApKSAtICgoKCgxNiktKDApKSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDAp KSArIDQpIC8gMikpICsgKDApKSldICE9IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEku UEMuZCk7IH0gd2hpbGUgKDApOyB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291 bnQgLT0gNjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVf SUNvdW50IC09IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbCgpOwog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgICAgY2FzZSAweGNjOiBpODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAgICAg ICAgICAgICAgICAgIHsgaWYgKEkuQUYuYi5sICYgMHg0MCkgeyBVSU5UMTYgYSA9IEFSRzE2KCk7 IGk4MDg1X0lDb3VudCAtPSA2OyB7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5oKTsgV00oLS1JLlNQ LncubCwgSS5QQy5iLmwpOyB9OyBJLlBDLmQgPSBhOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFso KChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAo MioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNv ZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEku UEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweGNkOiBpODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAgICAgICAgICAgICAg ICAgIHsgaWYgKDEpIHsgVUlOVDE2IGEgPSBBUkcxNigpOyBpODA4NV9JQ291bnQgLT0gNjsgeyBX TSgtLUkuU1Audy5sLCBJLlBDLmIuaCk7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5sKTsgfTsgSS5Q Qy5kID0gYTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykg Pj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2 KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNl MTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCArPSAyOyB9OwogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhjZTogaTgwODVf SUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuWFguYi5sID0gQVJHKCk7CiAg ICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4iICIg YWRjYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIgc2V0 b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5kYiAk MHhkMSwlJWFoICAgICAgXG4iICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFG LmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIiIChJLlhYLmIubCksICJhIiAoSS5BRi5iLmwpLCAi MCIgKEkuQUYuYi5oKSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgICAgIGNhc2UgMHhjZjogaTgwODVfSUNvdW50IC09IDExOwogICAgICAgICAgICAgICAgICAg ICAgICB7IHsgV00oLS1JLlNQLncubCwgSS5QQy5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLlBDLmIu bCk7IH07IEkuUEMuZCA9IDggKiAxOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQp ICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQp KSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkp IGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfTsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAweGQwOiBpODA4NV9JQ291bnQg LT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgeyBpZiAoIShJLkFGLmIubCAmIDB4MDEpKSB7 IGk4MDg1X0lDb3VudCAtPSA2OyB7IEkuUEMuYi5sID0gUk0oSS5TUC53LmwrKyk7IEkuUEMuYi5o ID0gUk0oSS5TUC53LmwrKyk7IH07IGRvIHsgaWYgKHJlYWRtZW1fbG9va3VwWygoKEkuUEMuZCkg JiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDApKSAtICgoKCgxNiktKDApKSA8ICgyKjEyIC0gNCkp ID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8gMikpICsgKDApKSldICE9IG9wY29kZV9lbnRyeSkg Y3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0gd2hpbGUgKDApOyB9IH07CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGQxOiBpODA4NV9JQ291bnQg LT0gMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgSS5ERS5iLmwgPSBSTShJLlNQLncubCsr KTsgSS5ERS5iLmggPSBSTShJLlNQLncubCsrKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZDI6IGk4MDg1X0lDb3VudCAtPSA3OwogICAg ICAgICAgICAgICAgICAgICAgICB7IGlmICghKEkuQUYuYi5sICYgMHgwMSkpIHsgaTgwODVfSUNv dW50IC09IDM7IEkuUEMudy5sID0gQVJHMTYoKTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgo SS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIq MTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2Rl X2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBD LncubCArPSAyOyB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHhkMzogaTgwODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAgICAgICAgICAg ICBJLlhYLmQ9QVJHKCk7IGNwdV93cml0ZXBvcnQxNihJLlhYLmQsSS5BRi5iLmgpOwogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkNDogaTgwODVf SUNvdW50IC09IDExOwogICAgICAgICAgICAgICAgICAgICAgICB7IGlmICghKEkuQUYuYi5sICYg MHgwMSkpIHsgVUlOVDE2IGEgPSBBUkcxNigpOyBpODA4NV9JQ291bnQgLT0gNjsgeyBXTSgtLUku U1Audy5sLCBJLlBDLmIuaCk7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5sKTsgfTsgSS5QQy5kID0g YTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgo KDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkp ICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5Q Qy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCArPSAyOyB9OwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkNTogaTgwODVfSUNvdW50 IC09IDExOwogICAgICAgICAgICAgICAgICAgICAgICB7IFdNKC0tSS5TUC53LmwsIEkuREUuYi5o KTsgV00oLS1JLlNQLncubCwgSS5ERS5iLmwpOyB9OwogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkNjogaTgwODVfSUNvdW50IC09IDc7CiAgICAg ICAgICAgICAgICAgICAgICAgIEkuWFguYi5sID0gQVJHKCk7CiAgICAgICAgICAgICAgICAgICAg ICAgIGFzbSAoICIgc3ViYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAg ICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAg XG4iICIgYW5kYiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICQyLCUlYWwgICAgICAgICAgXG4i ICIgb3JiICUlYWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYu Yi5sKSA6InIiIChJLlhYLmIubCksICIwIiAoSS5BRi5iLmgpICk7CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGQ3OiBpODA4NV9JQ291bnQgLT0g MTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgeyBXTSgtLUkuU1Audy5sLCBJLlBDLmIuaCk7 IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5sKTsgfTsgSS5QQy5kID0gOCAqIDI7IGRvIHsgaWYgKHJl YWRtZW1fbG9va3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDApKSAtICgo KCgxNiktKDApKSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8gMikpICsg KDApKSldICE9IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0gd2hpbGUg KDApOyB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBj YXNlIDB4ZDg6IGk4MDg1X0lDb3VudCAtPSA1OwogICAgICAgICAgICAgICAgICAgICAgICB7IGlm IChJLkFGLmIubCAmIDB4MDEpIHsgaTgwODVfSUNvdW50IC09IDY7IHsgSS5QQy5iLmwgPSBSTShJ LlNQLncubCsrKTsgSS5QQy5iLmggPSBSTShJLlNQLncubCsrKTsgfTsgZG8geyBpZiAocmVhZG1l bV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2 KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkp KV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7 IH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNl IDB4ZDk6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBJLmNwdXR5cGUgKSB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDEwOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEkuWFgudy5sID0gSS5ERS53Lmw7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV00oSS5YWC5kLCBJLkhMLmIubCk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSS5YWC53LmwrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX TShJLlhYLmQsIEkuSEwuYi5oKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4 ZGE6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICB7IGlmIChJLkFG LmIubCAmIDB4MDEpIHsgaTgwODVfSUNvdW50IC09IDM7IEkuUEMudy5sID0gQVJHMTYoKTsgZG8g eyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0o MCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkg LyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsg fSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCArPSAyOyB9OwogICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkYjogaTgwODVfSUNvdW50IC09IDEw OwogICAgICAgICAgICAgICAgICAgICAgICBJLlhYLmQ9QVJHKCk7IEkuQUYuYi5oPWNwdV9yZWFk cG9ydDE2KEkuWFguZCk7OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgICAgIGNhc2UgMHhkYzogaTgwODVfSUNvdW50IC09IDExOwogICAgICAgICAgICAgICAgICAg ICAgICB7IGlmIChJLkFGLmIubCAmIDB4MDEpIHsgVUlOVDE2IGEgPSBBUkcxNigpOyBpODA4NV9J Q291bnQgLT0gNjsgeyBXTSgtLUkuU1Audy5sLCBJLlBDLmIuaCk7IFdNKC0tSS5TUC53LmwsIEku UEMuYi5sKTsgfTsgSS5QQy5kID0gYTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5k KSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0 KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5 KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCAr PSAyOyB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNh c2UgMHhkZDoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEkuY3B1dHlwZSApIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7IGlmICghKEkuQUYuYi5sICYgMHgwOCkpIHsgaTgwODVfSUNv dW50IC09IDM7IEkuUEMudy5sID0gQVJHMTYoKTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgo SS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIq MTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2Rl X2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBD LncubCArPSAyOyB9OwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSA0OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlsbGVnYWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkZTogaTgw ODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuWFguYi5sID0gQVJHKCk7 CiAgICAgICAgICAgICAgICAgICAgICAgIGFzbSAoICIgc2hyYiAkMSwlJWFsICAgICAgICAgXG4i ICIgc2JiYiAlMiwlMCAgICAgICAgICAgXG4iICIgbGFoZiAgICAgICAgICAgICAgICAgXG4iICIg c2V0b2IgJSVhbCAgICAgICAgICAgXG4iICIgc2hsYiAkMiwlJWFsICAgICAgICAgXG4iICIgYW5k YiAkMHhkMSwlJWFoICAgICAgXG4iICIgb3JiICQyLCUlYWwgICAgICAgICAgXG4iICIgb3JiICUl YWgsJSVhbCAgICAgICAgXG4iIDoiPWciIChJLkFGLmIuaCksICI9YSIgKEkuQUYuYi5sKSA6InIi IChJLlhYLmIubCksICJhIiAoSS5BRi5iLmwpLCAiMCIgKEkuQUYuYi5oKSApOwogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhkZjogaTgwODVfSUNv dW50IC09IDExOwogICAgICAgICAgICAgICAgICAgICAgICB7IHsgV00oLS1JLlNQLncubCwgSS5Q Qy5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLlBDLmIubCk7IH07IEkuUEMuZCA9IDggKiAzOyBkbyB7 IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgw KSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAv IDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9 IHdoaWxlICgwKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAg ICAgICAgY2FzZSAweGUwOiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAg ICAgeyBpZiAoIShJLkFGLmIubCAmIDB4MDQpKSB7IGk4MDg1X0lDb3VudCAtPSA2OyB7IEkuUEMu Yi5sID0gUk0oSS5TUC53LmwrKyk7IEkuUEMuYi5oID0gUk0oSS5TUC53LmwrKyk7IH07IGRvIHsg aWYgKHJlYWRtZW1fbG9va3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDAp KSAtICgoKCgxNiktKDApKSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8g MikpICsgKDApKSldICE9IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0g d2hpbGUgKDApOyB9IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgY2FzZSAweGUxOiBpODA4NV9JQ291bnQgLT0gMTA7CiAgICAgICAgICAgICAgICAgICAg ICAgIHsgSS5ITC5iLmwgPSBSTShJLlNQLncubCsrKTsgSS5ITC5iLmggPSBSTShJLlNQLncubCsr KTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNl IDB4ZTI6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICB7IGlmICgh KEkuQUYuYi5sICYgMHgwNCkpIHsgaTgwODVfSUNvdW50IC09IDM7IEkuUEMudy5sID0gQVJHMTYo KTsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgo KDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkp ICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5Q Qy5kKTsgfSB3aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCArPSAyOyB9OwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhlMzogaTgwODVfSUNvdW50 IC09IDE4OwogICAgICAgICAgICAgICAgICAgICAgICB7IEkuWFguYi5sID0gUk0oSS5TUC53Lmwr Kyk7IEkuWFguYi5oID0gUk0oSS5TUC53LmwrKyk7IH07CiAgICAgICAgICAgICAgICAgICAgICAg IHsgV00oLS1JLlNQLncubCwgSS5ITC5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLkhMLmIubCk7IH07 CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwuZCA9IEkuWFguZDsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZTQ6IGk4MDg1X0lDb3VudCAt PSAxMTsKICAgICAgICAgICAgICAgICAgICAgICAgeyBpZiAoIShJLkFGLmIubCAmIDB4MDQpKSB7 IFVJTlQxNiBhID0gQVJHMTYoKTsgaTgwODVfSUNvdW50IC09IDY7IHsgV00oLS1JLlNQLncubCwg SS5QQy5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLlBDLmIubCk7IH07IEkuUEMuZCA9IGE7IGRvIHsg aWYgKHJlYWRtZW1fbG9va3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDAp KSAtICgoKCgxNiktKDApKSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8g MikpICsgKDApKSldICE9IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0g d2hpbGUgKDApOyB9IGVsc2UgSS5QQy53LmwgKz0gMjsgfTsKICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZTU6IGk4MDg1X0lDb3VudCAtPSAxMTsK ICAgICAgICAgICAgICAgICAgICAgICAgeyBXTSgtLUkuU1Audy5sLCBJLkhMLmIuaCk7IFdNKC0t SS5TUC53LmwsIEkuSEwuYi5sKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgICAgICAgICBjYXNlIDB4ZTY6IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAg ICAgICAgICAgICBJLlhYLmIubCA9IEFSRygpOwogICAgICAgICAgICAgICAgICAgICAgICBJLkFG LmIuaCY9SS5YWC5iLmw7IEkuQUYuYi5sPVpTUFtJLkFGLmIuaF18MHgxMDsKICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZTc6IGk4MDg1X0lDb3Vu dCAtPSAxMTsKICAgICAgICAgICAgICAgICAgICAgICAgeyB7IFdNKC0tSS5TUC53LmwsIEkuUEMu Yi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5iLmwpOyB9OyBJLlBDLmQgPSA4ICogNDsgZG8geyBp ZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkp IC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAy KSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3 aGlsZSAoMCk7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAg ICAgIGNhc2UgMHhlODogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAg IHsgaWYgKEkuQUYuYi5sICYgMHgwNCkgeyBpODA4NV9JQ291bnQgLT0gNjsgeyBJLlBDLmIubCA9 IFJNKEkuU1Audy5sKyspOyBJLlBDLmIuaCA9IFJNKEkuU1Audy5sKyspOyB9OyBkbyB7IGlmIChy ZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAo KCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSAr ICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxl ICgwKTsgfSB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg IGNhc2UgMHhlOTogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAgICAgIEku UEMuZCA9IEkuSEwudy5sOwogICAgICAgICAgICAgICAgICAgICAgICBkbyB7IGlmIChyZWFkbWVt X2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYp LSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkp XSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsK ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZWE6 IGk4MDg1X0lDb3VudCAtPSA3OwogICAgICAgICAgICAgICAgICAgICAgICB7IGlmIChJLkFGLmIu bCAmIDB4MDQpIHsgaTgwODVfSUNvdW50IC09IDM7IEkuUEMudy5sID0gQVJHMTYoKTsgZG8geyBp ZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkp IC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAy KSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3 aGlsZSAoMCk7IH0gZWxzZSBJLlBDLncubCArPSAyOyB9OwogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhlYjogaTgwODVfSUNvdW50IC09IDQ7CiAg ICAgICAgICAgICAgICAgICAgICAgIEkuWFguZCA9IEkuREUuZDsKICAgICAgICAgICAgICAgICAg ICAgICAgSS5ERS5kID0gSS5ITC5kOwogICAgICAgICAgICAgICAgICAgICAgICBJLkhMLmQgPSBJ LlhYLmQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2Fz ZSAweGVjOiBpODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYg KEkuQUYuYi5sICYgMHgwNCkgeyBVSU5UMTYgYSA9IEFSRzE2KCk7IGk4MDg1X0lDb3VudCAtPSA2 OyB7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5iLmwpOyB9 OyBJLlBDLmQgPSBhOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2Ft YXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDog KCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRv cGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGVkOgog ICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5jcHV0eXBlICkgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJLlhYLncubCA9IEkuREUudy5sOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkuSEwuYi5sID0gUk0oSS5YWC5kKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJLlhYLncubCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuSEwuYi5o ID0gUk0oSS5YWC5kKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0gNDsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbGxlZ2FsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhlZTogaTgwODVfSUNvdW50IC09IDc7CiAgICAg ICAgICAgICAgICAgICAgICAgIEkuWFguYi5sID0gQVJHKCk7CiAgICAgICAgICAgICAgICAgICAg ICAgIEkuQUYuYi5oXj1JLlhYLmIubDsgSS5BRi5iLmw9WlNQW0kuQUYuYi5oXTsKICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4ZWY6IGk4MDg1X0lD b3VudCAtPSAxMTsKICAgICAgICAgICAgICAgICAgICAgICAgeyB7IFdNKC0tSS5TUC53LmwsIEku UEMuYi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5iLmwpOyB9OyBJLlBDLmQgPSA4ICogNTsgZG8g eyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0o MCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkg LyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsg fSB3aGlsZSAoMCk7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAg ICAgICAgIGNhc2UgMHhmMDogaTgwODVfSUNvdW50IC09IDU7CiAgICAgICAgICAgICAgICAgICAg ICAgIHsgaWYgKCEoSS5BRi5iLmwmMHg4MCkpIHsgaTgwODVfSUNvdW50IC09IDY7IHsgSS5QQy5i LmwgPSBSTShJLlNQLncubCsrKTsgSS5QQy5iLmggPSBSTShJLlNQLncubCsrKTsgfTsgZG8geyBp ZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2KS0oMCkp IC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsgNCkgLyAy KSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5kKTsgfSB3 aGlsZSAoMCk7IH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBjYXNlIDB4ZjE6IGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAgICAgICAgICAgICAgICAg ICAgeyBJLkFGLmIubCA9IFJNKEkuU1Audy5sKyspOyBJLkFGLmIuaCA9IFJNKEkuU1Audy5sKysp OyB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2Ug MHhmMjogaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKCEo SS5BRi5iLmwgJiAweDgwKSkgeyBpODA4NV9JQ291bnQgLT0gMzsgSS5QQy53LmwgPSBBUkcxNigp OyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgo MTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkg KyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBD LmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGYzOiBpODA4NV9JQ291bnQg LT0gNDsKCiAgICAgICAgICAgICAgICAgICAgICAgIEkuSU0gJj0gfjB4MjA7CiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGY0OiBpODA4NV9JQ291 bnQgLT0gMTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKCEoSS5BRi5iLmwgJiAweDgw KSkgeyBVSU5UMTYgYSA9IEFSRzE2KCk7IGk4MDg1X0lDb3VudCAtPSA2OyB7IFdNKC0tSS5TUC53 LmwsIEkuUEMuYi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5iLmwpOyB9OyBJLlBDLmQgPSBhOyBk byB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYp LSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0 KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQp OyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGY1OiBpODA4NV9JQ291bnQgLT0g MTE7CiAgICAgICAgICAgICAgICAgICAgICAgIHsgV00oLS1JLlNQLncubCwgSS5BRi5iLmgpOyBX TSgtLUkuU1Audy5sLCBJLkFGLmIubCk7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgICAgY2FzZSAweGY2OiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAg ICAgICAgICAgICAgICAgSS5YWC5iLmwgPSBBUkcoKTsKICAgICAgICAgICAgICAgICAgICAgICAg SS5BRi5iLmh8PUkuWFguYi5sOyBJLkFGLmIubD1aU1BbSS5BRi5iLmhdOwogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMHhmNzogaTgwODVfSUNvdW50 IC09IDExOwogICAgICAgICAgICAgICAgICAgICAgICB7IHsgV00oLS1JLlNQLncubCwgSS5QQy5i LmgpOyBXTSgtLUkuU1Audy5sLCBJLlBDLmIubCk7IH07IEkuUEMuZCA9IDggKiA2OyBkbyB7IGlm IChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkg LSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIp KSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdo aWxlICgwKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAg ICAgY2FzZSAweGY4OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAg eyBpZiAoSS5BRi5iLmwgJiAweDgwKSB7IGk4MDg1X0lDb3VudCAtPSA2OyB7IEkuUEMuYi5sID0g Uk0oSS5TUC53LmwrKyk7IEkuUEMuYi5oID0gUk0oSS5TUC53LmwrKyk7IH07IGRvIHsgaWYgKHJl YWRtZW1fbG9va3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDApKSAtICgo KCgxNiktKDApKSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8gMikpICsg KDApKSldICE9IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0gd2hpbGUg KDApOyB9IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg Y2FzZSAweGY5OiBpODA4NV9JQ291bnQgLT0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5T UC5kID0gSS5ITC5kOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGNhc2UgMHhmYTogaTgwODVfSUNvdW50IC09IDc7CiAgICAgICAgICAgICAgICAgICAgICAg IHsgaWYgKEkuQUYuYi5sICYgMHg4MCkgeyBpODA4NV9JQ291bnQgLT0gMzsgSS5QQy53LmwgPSBB UkcxNigpOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+ PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYp LSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2Ux NihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNlIEkuUEMudy5sICs9IDI7IH07CiAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAweGZiOiBpODA4NV9J Q291bnQgLT0gNDsKCiAgICAgICAgICAgICAgICAgICAgICAgIEkuSU0gfD0gMHgyMDsKCiAgICAg ICAgICAgICAgICAgICAgICAgIEkuSVJFUSAmPSB+SS5JU1JWOwoKICAgICAgICAgICAgICAgICAg ICAgICAgSS5JU1JWID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEkuaXJxX3N0YXRl WzBdICE9IENMRUFSX0xJTkUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuSVJFUSB8PSAweDA4OwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEkuSU5UUiA9IDB4ZmY7CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEkuY3B1dHlwZSApIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5pcnFfc3RhdGVbMV0gIT0gQ0xFQVJfTElORSAp IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuSVJFUSB8PSAweDAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigg SS5pcnFfc3RhdGVbMl0gIT0gQ0xFQVJfTElORSApIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEkuSVJFUSB8PSAweDAyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5pcnFfc3RhdGVbM10gIT0gQ0xFQVJfTElO RSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuSVJFUSB8PSAweDA0OwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmKCAhKEkuSU0gJiAweDA0KSAmJiAoSS5JUkVRICYgMHgwNCkgKSB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJLklTUlYgPSAweDA0OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSS5JUlEyID0gMHgwMDNjOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICEoSS5JTSAmIDB4MDIpICYmIChJLklS RVEgJiAweDAyKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEku SVNSViA9IDB4MDI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJLklS UTIgPSAweDAwMzQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKCAh KEkuSU0gJiAweDAxKSAmJiAoSS5JUkVRICYgMHgwMSkgKSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJLklTUlYgPSAweDAxOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSS5JUlEyID0gMHgwMDJjOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiggIShJLklNICYgMHgwOCkgJiYgKEkuSVJFUSAmIDB4MDgpICkg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS5JU1JWID0gMHgwODsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuSVJRMiA9IEkuSU5UUjsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICEoSS5JTSAmIDB4 MDgpICYmIChJLklSRVEgJiAweDA4KSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEkuSVNSViA9IDB4MDg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJLklSUTIgPSBJLklOVFI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgICAgY2FzZSAweGZjOiBpODA4NV9JQ291bnQgLT0gMTE7CiAgICAgICAg ICAgICAgICAgICAgICAgIHsgaWYgKEkuQUYuYi5sICYgMHg4MCkgeyBVSU5UMTYgYSA9IEFSRzE2 KCk7IGk4MDg1X0lDb3VudCAtPSA2OyB7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5oKTsgV00oLS1J LlNQLncubCwgSS5QQy5iLmwpOyB9OyBJLlBDLmQgPSBhOyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1 cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkg PCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBv cGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBlbHNl IEkuUEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgICAgY2FzZSAweGZkOgogICAgICAgICAgICAgICAgICAgICAgICBpZiggSS5jcHV0eXBl ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSA3Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgaWYgKEkuQUYuYi5sICYgMHgwOCkgeyBp ODA4NV9JQ291bnQgLT0gMzsgSS5QQy53LmwgPSBBUkcxNigpOyBkbyB7IGlmIChyZWFkbWVtX2xv b2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgw KSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAh PSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfSBl bHNlIEkuUEMudy5sICs9IDI7IH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVfSUNvdW50IC09IDQ7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbCgpOwogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAw eGZlOiBpODA4NV9JQ291bnQgLT0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgSS5YWC5iLmwg PSBBUkcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgYXNtICggIiBjbXBiICUyLCUwICAgICAg ICAgIFxuIiAiIGxhaGYgICAgICAgICAgICAgICAgXG4iICIgc2V0b2IgJSVhbCAgICAgICAgICBc biIgIiBzaGxiICQyLCUlYWwgICAgICAgIFxuIiAiIGFuZGIgJDB4ZDEsJSVhaCAgICAgXG4iICIg b3JiICQyLCUlYWwgICAgICAgICBcbiIgIiBvcmIgJSVhaCwlJWFsICAgICAgIFxuIiA6Ij1nIiAo SS5BRi5iLmgpLCAiPWEiIChJLkFGLmIubCkgOiJyIiAoSS5YWC5iLmwpLCAiMCIgKEkuQUYuYi5o KSApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2Ug MHhmZjogaTgwODVfSUNvdW50IC09IDExOwogICAgICAgICAgICAgICAgICAgICAgICB7IHsgV00o LS1JLlNQLncubCwgSS5QQy5iLmgpOyBXTSgtLUkuU1Audy5sLCBJLlBDLmIubCk7IH07IEkuUEMu ZCA9IDggKiA3OyBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNr KSA+PiAoKCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgo MTYpLSgwKSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJh c2UxNihJLlBDLmQpOyB9IHdoaWxlICgwKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgfQp9CgpzdGF0aWMgdm9pZCBJbnRlcnJ1cHQodm9pZCkKewoKICAgICAgICBp ZiggSS5IQUxUICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBJLlBDLncubCsrOwogICAgICAg ICAgICAgICAgSS5IQUxUID0gMDsKICAgICAgICB9CiAgICAgICAgSS5JTSAmPSB+MHgyMDsKCiAg ICAgICAgaWYoIEkuSVNSViA9PSAweDA4ICkKICAgICAgICB7CiAgICAgICAgICAgICAgICA7CiAg ICAgICAgICAgICAgICBJLklSUTEgPSAoSS5pcnFfY2FsbGJhY2spKDApOwogICAgICAgIH0KCiAg ICAgICAgaWYoIEkuY3B1dHlwZSApCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYoIEkuSVNS ViA9PSAweDAxICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgOwog ICAgICAgICAgICAgICAgICAgICAgICBJLklSUTEgPSAoSS5pcnFfY2FsbGJhY2spKDEpOwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCBJLklTUlYgPT0gMHgwMiApCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgICAg ICAgICAgSS5JUlExID0gKEkuaXJxX2NhbGxiYWNrKSgyKTsKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBpZiggSS5JU1JWID09IDB4MDQgKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICAgICAgICAgIEkuSVJRMSA9IChJ LmlycV9jYWxsYmFjaykoMyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBz d2l0Y2goIEkuSVJRMSAmIDB4ZmYwMDAwICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBjYXNl IDB4Y2QwMDAwOgogICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9JQ291bnQgLT0gNzsKICAg ICAgICAgICAgICAgICAgICAgICAgeyBXTSgtLUkuU1Audy5sLCBJLlBDLmIuaCk7IFdNKC0tSS5T UC53LmwsIEkuUEMuYi5sKTsgfTsKICAgICAgICAgICAgICAgIGNhc2UgMHhjMzAwMDA6CiAgICAg ICAgICAgICAgICAgICAgICAgIGk4MDg1X0lDb3VudCAtPSAxMDsKICAgICAgICAgICAgICAgICAg ICAgICAgSS5QQy5kID0gSS5JUlExICYgMHhmZmZmOwogICAgICAgICAgICAgICAgICAgICAgICBk byB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAoKCgoMTYp LSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgwKSkgKyA0 KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJLlBDLmQp OyB9IHdoaWxlICgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2goIEkuSVNSViApCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj YXNlIDB4MTA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDA0OgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMjoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjYXNlIDB4MDE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7IFdNKC0tSS5TUC53LmwsIEkuUEMuYi5oKTsgV00oLS1JLlNQLncubCwgSS5QQy5i LmwpOyB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEkuSVJR MSAhPSAoMSA8PCAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSS5QQy5kID0gSS5JUlExOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJLlBDLmQgPSAweDNjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFzaykgPj4gKCgoKDE2 KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgoKDE2KS0oMCkpICsg NCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3BiYXNlMTYoSS5QQy5k KTsgfSB3aGlsZSAoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXhlY3V0ZV9vbmUoSS5JUlExICYgMHhmZik7CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICB9Cn0KCmludCBpODA4NV9leGVjdXRlKGludCBjeWNsZXMpCnsK CiAgICAgICAgaTgwODVfSUNvdW50ID0gY3ljbGVzOwogICAgICAgIGRvCiAgICAgICAgewogICAg ICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIGlmICggKEkuSU0gJiAweDIwKSB8fCAoSS5J UkVRICYgMHgxMCkgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAg SS5JUlExID0gSS5JUlEyOwoKICAgICAgICAgICAgICAgICAgICAgICAgSS5JUlEyID0gMDsKCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChJLklSUTEpIEludGVycnVwdCgpOwogICAgICAgICAg ICAgICAgfQoKCiAgICAgICAgICAgICAgICBleGVjdXRlX29uZShST1AoKSk7CgogICAgICAgIH0g d2hpbGUgKGk4MDg1X0lDb3VudCA+IDApOwoKICAgICAgICByZXR1cm4gY3ljbGVzIC0gaTgwODVf SUNvdW50Owp9CgoKCgpzdGF0aWMgdm9pZCBpbml0X3RhYmxlcyAodm9pZCkKewogICAgICAgIFVJ TlQ4IHpzOwogICAgICAgIGludCBpLCBwOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkr KykKICAgICAgICB7CiAgICAgICAgICAgICAgICB6cyA9IDA7CiAgICAgICAgICAgICAgICBpZiAo aT09MCkgenMgfD0gMHg0MDsKICAgICAgICAgICAgICAgIGlmIChpJjEyOCkgenMgfD0gMHg4MDsK ICAgICAgICAgICAgICAgIHAgPSAwOwogICAgICAgICAgICAgICAgaWYgKGkmMSkgKytwOwogICAg ICAgICAgICAgICAgaWYgKGkmMikgKytwOwogICAgICAgICAgICAgICAgaWYgKGkmNCkgKytwOwog ICAgICAgICAgICAgICAgaWYgKGkmOCkgKytwOwogICAgICAgICAgICAgICAgaWYgKGkmMTYpICsr cDsKICAgICAgICAgICAgICAgIGlmIChpJjMyKSArK3A7CiAgICAgICAgICAgICAgICBpZiAoaSY2 NCkgKytwOwogICAgICAgICAgICAgICAgaWYgKGkmMTI4KSArK3A7CiAgICAgICAgICAgICAgICBa U1tpXSA9IHpzOwogICAgICAgICAgICAgICAgWlNQW2ldID0genMgfCAoKHAmMSkgPyAwIDogMHgw NCk7CiAgICAgICAgfQp9CgoKCgp2b2lkIGk4MDg1X2luaXQodm9pZCkKewogICAgICAgIGludCBj cHUgPSBjcHVfZ2V0YWN0aXZlY3B1KCk7CiAgICAgICAgaW5pdF90YWJsZXMoKTsKICAgICAgICBJ LmNwdXR5cGUgPSAxOwoKICAgICAgICBzdGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQxNigiaTgwODUi LCBjcHUsICJBRiIsICZJLkFGLncubCwgMSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9V SU5UMTYoImk4MDg1IiwgY3B1LCAiQkMiLCAmSS5CQy53LmwsIDEpOwogICAgICAgIHN0YXRlX3Nh dmVfcmVnaXN0ZXJfVUlOVDE2KCJpODA4NSIsIGNwdSwgIkRFIiwgJkkuREUudy5sLCAxKTsKICAg ICAgICBzdGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQxNigiaTgwODUiLCBjcHUsICJITCIsICZJLkhM LncubCwgMSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMTYoImk4MDg1IiwgY3B1 LCAiU1AiLCAmSS5TUC53LmwsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDE2 KCJpODA4NSIsIGNwdSwgIlBDIiwgJkkuUEMudy5sLCAxKTsKICAgICAgICBzdGF0ZV9zYXZlX3Jl Z2lzdGVyX1VJTlQ4KCJpODA4NSIsIGNwdSwgIkhBTFQiLCAmSS5IQUxULCAxKTsKICAgICAgICBz dGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQ4KCJpODA4NSIsIGNwdSwgIklNIiwgJkkuSU0sIDEpOwog ICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDgoImk4MDg1IiwgY3B1LCAiSVJFUSIsICZJ LklSRVEsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDgoImk4MDg1IiwgY3B1 LCAiSVNSViIsICZJLklTUlYsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDMy KCJpODA4NSIsIGNwdSwgIklOVFIiLCAmSS5JTlRSLCAxKTsKICAgICAgICBzdGF0ZV9zYXZlX3Jl Z2lzdGVyX1VJTlQzMigiaTgwODUiLCBjcHUsICJJUlEyIiwgJkkuSVJRMiwgMSk7CiAgICAgICAg c3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMzIoImk4MDg1IiwgY3B1LCAiSVJRMSIsICZJLklSUTEs IDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfSU5UOCgiaTgwODUiLCBjcHUsICJOTUlf U1RBVEUiLCAmSS5ubWlfc3RhdGUsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfSU5U OCgiaTgwODUiLCBjcHUsICJJUlFfU1RBVEUiLCBJLmlycV9zdGF0ZSwgNCk7Cn0KCgoKCnZvaWQg aTgwODVfcmVzZXQodm9pZCAqcGFyYW0pCnsKICAgICAgICBpbml0X3RhYmxlcygpOwogICAgICAg IChfX2V4dGVuc2lvbl9fIChfX2J1aWx0aW5fY29uc3RhbnRfcCAoc2l6ZW9mKGk4MDg1X1JlZ3Mp KSAmJiAoc2l6ZW9mKGk4MDg1X1JlZ3MpKSA8PSAxNiA/ICgoc2l6ZW9mKGk4MDg1X1JlZ3MpKSA9 PSAxID8gKHsgdm9pZCAqX19zID0gKCZJKTsgKigoX191aW50OF90ICopIF9fcykgPSAoX191aW50 OF90KSAwOyBfX3M7IH0pIDogKHsgdm9pZCAqX19zID0gKCZJKTsgdW5pb24geyB1bnNpZ25lZCBp bnQgX191aTsgdW5zaWduZWQgc2hvcnQgaW50IF9fdXNpOyB1bnNpZ25lZCBjaGFyIF9fdWM7IH0g Kl9fdSA9IF9fczsgX191aW50OF90IF9fYyA9IChfX3VpbnQ4X3QpICgwKTsgc3dpdGNoICgodW5z aWduZWQgaW50KSAoc2l6ZW9mKGk4MDg1X1JlZ3MpKSkgeyBjYXNlIDE1OiBfX3UtPl9fdWkgPSBf X2MgKiAweDAxMDEwMTAxOyBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsg Y2FzZSAxMTogX191LT5fX3VpID0gX19jICogMHgwMTAxMDEwMTsgX191ID0gX19leHRlbnNpb25f XyAoKHZvaWQgKikgX191ICsgNCk7IGNhc2UgNzogX191LT5fX3VpID0gX19jICogMHgwMTAxMDEw MTsgX191ID0gX19leHRlbnNpb25fXyAoKHZvaWQgKikgX191ICsgNCk7IGNhc2UgMzogX191LT5f X3VzaSA9ICh1bnNpZ25lZCBzaG9ydCBpbnQpIF9fYyAqIDB4MDEwMTsgX191ID0gX19leHRlbnNp b25fXyAoKHZvaWQgKikgX191ICsgMik7IF9fdS0+X191YyA9ICh1bnNpZ25lZCBjaGFyKSBfX2M7 IGJyZWFrOyBjYXNlIDE0OiBfX3UtPl9fdWkgPSBfX2MgKiAweDAxMDEwMTAxOyBfX3UgPSBfX2V4 dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsgY2FzZSAxMDogX191LT5fX3VpID0gX19jICog MHgwMTAxMDEwMTsgX191ID0gX19leHRlbnNpb25fXyAoKHZvaWQgKikgX191ICsgNCk7IGNhc2Ug NjogX191LT5fX3VpID0gX19jICogMHgwMTAxMDEwMTsgX191ID0gX19leHRlbnNpb25fXyAoKHZv aWQgKikgX191ICsgNCk7IGNhc2UgMjogX191LT5fX3VzaSA9ICh1bnNpZ25lZCBzaG9ydCBpbnQp IF9fYyAqIDB4MDEwMTsgYnJlYWs7IGNhc2UgMTM6IF9fdS0+X191aSA9IF9fYyAqIDB4MDEwMTAx MDE7IF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDQpOyBjYXNlIDk6IF9fdS0+ X191aSA9IF9fYyAqIDB4MDEwMTAxMDE7IF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9f dSArIDQpOyBjYXNlIDU6IF9fdS0+X191aSA9IF9fYyAqIDB4MDEwMTAxMDE7IF9fdSA9IF9fZXh0 ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDQpOyBjYXNlIDE6IF9fdS0+X191YyA9ICh1bnNpZ25l ZCBjaGFyKSBfX2M7IGJyZWFrOyBjYXNlIDE2OiBfX3UtPl9fdWkgPSBfX2MgKiAweDAxMDEwMTAx OyBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsgY2FzZSAxMjogX191LT5f X3VpID0gX19jICogMHgwMTAxMDEwMTsgX191ID0gX19leHRlbnNpb25fXyAoKHZvaWQgKikgX191 ICsgNCk7IGNhc2UgODogX191LT5fX3VpID0gX19jICogMHgwMTAxMDEwMTsgX191ID0gX19leHRl bnNpb25fXyAoKHZvaWQgKikgX191ICsgNCk7IGNhc2UgNDogX191LT5fX3VpID0gX19jICogMHgw MTAxMDEwMTsgY2FzZSAwOiBicmVhazsgfSBfX3M7IH0pKSA6IChfX2J1aWx0aW5fY29uc3RhbnRf cCAoMCkgJiYgKDApID09ICdcMCcgPyAoeyB2b2lkICpfX3MgPSAoJkkpOyBfX2J1aWx0aW5fbWVt c2V0IChfX3MsICdcMCcsIHNpemVvZihpODA4NV9SZWdzKSk7IF9fczsgfSkgOiBtZW1zZXQgKCZJ LCAwLCBzaXplb2YoaTgwODVfUmVncykpKSkpOwogICAgICAgIGRvIHsgaWYgKHJlYWRtZW1fbG9v a3VwWygoKEkuUEMuZCkgJiBtZW1fYW1hc2spID4+ICgoKCgxNiktKDApKSAtICgoKCgxNiktKDAp KSA8ICgyKjEyIC0gNCkpID8gMTIgOiAoKCgxNiktKDApKSArIDQpIC8gMikpICsgKDApKSldICE9 IG9wY29kZV9lbnRyeSkgY3B1X3NldG9wYmFzZTE2KEkuUEMuZCk7IH0gd2hpbGUgKDApOwp9CgoK Cgp2b2lkIGk4MDg1X2V4aXQodm9pZCkKewoKfQoKCgoKdW5zaWduZWQgaTgwODVfZ2V0X2NvbnRl eHQodm9pZCAqZHN0KQp7CiAgICAgICAgaWYoIGRzdCApCiAgICAgICAgICAgICAgICAqKGk4MDg1 X1JlZ3MqKWRzdCA9IEk7CiAgICAgICAgcmV0dXJuIHNpemVvZihpODA4NV9SZWdzKTsKfQoKCgoK dm9pZCBpODA4NV9zZXRfY29udGV4dCh2b2lkICpzcmMpCnsKICAgICAgICBpZiggc3JjICkKICAg ICAgICB7CiAgICAgICAgICAgICAgICBJID0gKihpODA4NV9SZWdzKilzcmM7CiAgICAgICAgICAg ICAgICBkbyB7IGlmIChyZWFkbWVtX2xvb2t1cFsoKChJLlBDLmQpICYgbWVtX2FtYXNrKSA+PiAo KCgoMTYpLSgwKSkgLSAoKCgoMTYpLSgwKSkgPCAoMioxMiAtIDQpKSA/IDEyIDogKCgoMTYpLSgw KSkgKyA0KSAvIDIpKSArICgwKSkpXSAhPSBvcGNvZGVfZW50cnkpIGNwdV9zZXRvcGJhc2UxNihJ LlBDLmQpOyB9IHdoaWxlICgwKTsKICAgICAgICB9Cn0KCgoKCnVuc2lnbmVkIGk4MDg1X2dldF9y ZWcoaW50IHJlZ251bSkKewogICAgICAgIHN3aXRjaCggcmVnbnVtICkKICAgICAgICB7CiAgICAg ICAgICAgICAgICBjYXNlIFJFR19QQzogcmV0dXJuIEkuUEMuZDsKICAgICAgICAgICAgICAgIGNh c2UgSTgwODVfUEM6IHJldHVybiBJLlBDLncubDsKICAgICAgICAgICAgICAgIGNhc2UgUkVHX1NQ OiByZXR1cm4gSS5TUC5kOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9TUDogcmV0dXJuIEku U1Audy5sOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9BRjogcmV0dXJuIEkuQUYudy5sOwog ICAgICAgICAgICAgICAgY2FzZSBJODA4NV9CQzogcmV0dXJuIEkuQkMudy5sOwogICAgICAgICAg ICAgICAgY2FzZSBJODA4NV9ERTogcmV0dXJuIEkuREUudy5sOwogICAgICAgICAgICAgICAgY2Fz ZSBJODA4NV9ITDogcmV0dXJuIEkuSEwudy5sOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9J TTogcmV0dXJuIEkuSU07CiAgICAgICAgICAgICAgICBjYXNlIEk4MDg1X0hBTFQ6IHJldHVybiBJ LkhBTFQ7CiAgICAgICAgICAgICAgICBjYXNlIEk4MDg1X0lSRVE6IHJldHVybiBJLklSRVE7CiAg ICAgICAgICAgICAgICBjYXNlIEk4MDg1X0lTUlY6IHJldHVybiBJLklTUlY7CiAgICAgICAgICAg ICAgICBjYXNlIEk4MDg1X1ZFQ1RPUjogcmV0dXJuIEkuSU5UUjsKICAgICAgICAgICAgICAgIGNh c2UgSTgwODVfVFJBUF9TVEFURTogcmV0dXJuIEkubm1pX3N0YXRlOwogICAgICAgICAgICAgICAg Y2FzZSBJODA4NV9JTlRSX1NUQVRFOiByZXR1cm4gSS5pcnFfc3RhdGVbMF07CiAgICAgICAgICAg ICAgICBjYXNlIEk4MDg1X1JTVDU1X1NUQVRFOiByZXR1cm4gSS5pcnFfc3RhdGVbMV07CiAgICAg ICAgICAgICAgICBjYXNlIEk4MDg1X1JTVDY1X1NUQVRFOiByZXR1cm4gSS5pcnFfc3RhdGVbMl07 CiAgICAgICAgICAgICAgICBjYXNlIEk4MDg1X1JTVDc1X1NUQVRFOiByZXR1cm4gSS5pcnFfc3Rh dGVbM107CiAgICAgICAgICAgICAgICBjYXNlIFJFR19QUkVWSU9VU1BDOiByZXR1cm4gMDsKICAg ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCByZWdudW0g PD0gUkVHX1NQX0NPTlRFTlRTICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IEkuU1Audy5sICsgMiAqIChS RUdfU1BfQ09OVEVOVFMgLSByZWdudW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmKCBvZmZzZXQgPCAweGZmZmYgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFJNKCBvZmZzZXQgKSArICggUk0oIG9mZnNldCsxICkgPDwgOCApOwogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwp9CgoKCgp2 b2lkIGk4MDg1X3NldF9yZWcoaW50IHJlZ251bSwgdW5zaWduZWQgdmFsKQp7CiAgICAgICAgc3dp dGNoKCByZWdudW0gKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGNhc2UgUkVHX1BDOiBJLlBD LncubCA9IHZhbDsgZG8geyBpZiAocmVhZG1lbV9sb29rdXBbKCgoSS5QQy5kKSAmIG1lbV9hbWFz aykgPj4gKCgoKDE2KS0oMCkpIC0gKCgoKDE2KS0oMCkpIDwgKDIqMTIgLSA0KSkgPyAxMiA6ICgo KDE2KS0oMCkpICsgNCkgLyAyKSkgKyAoMCkpKV0gIT0gb3Bjb2RlX2VudHJ5KSBjcHVfc2V0b3Bi YXNlMTYoSS5QQy5kKTsgfSB3aGlsZSAoMCk7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBJ ODA4NV9QQzogSS5QQy53LmwgPSB2YWw7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBSRUdf U1A6IEkuU1Audy5sID0gdmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfU1A6 IEkuU1Audy5sID0gdmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfQUY6IEku QUYudy5sID0gdmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfQkM6IEkuQkMu dy5sID0gdmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfREU6IEkuREUudy5s ID0gdmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfSEw6IEkuSEwudy5sID0g dmFsOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfSU06IEkuSU0gPSB2YWw7IGJy ZWFrOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9IQUxUOiBJLkhBTFQgPSB2YWw7IGJyZWFr OwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9JUkVROiBJLklSRVEgPSB2YWw7IGJyZWFrOwog ICAgICAgICAgICAgICAgY2FzZSBJODA4NV9JU1JWOiBJLklTUlYgPSB2YWw7IGJyZWFrOwogICAg ICAgICAgICAgICAgY2FzZSBJODA4NV9WRUNUT1I6IEkuSU5UUiA9IHZhbDsgYnJlYWs7CiAgICAg ICAgICAgICAgICBjYXNlIEk4MDg1X1RSQVBfU1RBVEU6IEkubm1pX3N0YXRlID0gdmFsOyBicmVh azsKICAgICAgICAgICAgICAgIGNhc2UgSTgwODVfSU5UUl9TVEFURTogSS5pcnFfc3RhdGVbMF0g PSB2YWw7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9SU1Q1NV9TVEFURTogSS5p cnFfc3RhdGVbMV0gPSB2YWw7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBJODA4NV9SU1Q2 NV9TVEFURTogSS5pcnFfc3RhdGVbMl0gPSB2YWw7IGJyZWFrOwogICAgICAgICAgICAgICAgY2Fz ZSBJODA4NV9SU1Q3NV9TVEFURTogSS5pcnFfc3RhdGVbM10gPSB2YWw7IGJyZWFrOwogICAgICAg ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHJlZ251bSA8PSBS RUdfU1BfQ09OVEVOVFMgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0gSS5TUC53LmwgKyAyICogKFJFR19T UF9DT05URU5UUyAtIHJlZ251bSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYo IG9mZnNldCA8IDB4ZmZmZiApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV00oIG9mZnNldCwgdmFsJjB4ZmYg KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdNKCBvZmZzZXQrMSwg KHZhbD4+OCkmMHhmZiApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgIH0KfQoKCgoKdm9pZCBpODA4NV9zZXRfU0lEKGlu dCBzdGF0ZSkKewogICAgICAgIDsKICAgICAgICBpZiAoc3RhdGUpCiAgICAgICAgICAgICAgICBJ LklNIHw9IDB4ODA7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgSS5JTSAmPSB+MHg4MDsK fQoKCgoKdm9pZCBpODA4NV9zZXRfc29kX2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykoaW50IHN0 YXRlKSkKewogICAgICAgIEkuc29kX2NhbGxiYWNrID0gY2FsbGJhY2s7Cn0KCgoKCnZvaWQgaTgw ODVfc2V0X1RSQVAoaW50IHN0YXRlKQp7CiAgICAgICAgOwogICAgICAgIGlmIChzdGF0ZSkKICAg ICAgICB7CiAgICAgICAgICAgICAgICBJLklSRVEgfD0gMHgxMDsKICAgICAgICAgICAgICAgIGlm KCBJLklTUlYgJiAweDEwICkgcmV0dXJuOwogICAgICAgICAgICAgICAgSS5JU1JWID0gMHgxMDsK ICAgICAgICAgICAgICAgIEkuSVJRMiA9IDB4MDAyNDsKICAgICAgICB9CiAgICAgICAgZWxzZQog ICAgICAgIHsKICAgICAgICAgICAgICAgIEkuSVJFUSAmPSB+MHgxMDsKICAgICAgICB9Cn0KCgoK CnZvaWQgaTgwODVfc2V0X1JTVDc1KGludCBzdGF0ZSkKewogICAgICAgIDsKICAgICAgICBpZigg c3RhdGUgKQogICAgICAgIHsKCiAgICAgICAgICAgICAgICBJLklSRVEgfD0gMHgwNDsKICAgICAg ICAgICAgICAgIGlmKCBJLklNICYgMHgwNCApIHJldHVybjsKICAgICAgICAgICAgICAgIGlmKCAh SS5JU1JWICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSS5JU1JW ID0gMHgwNDsKICAgICAgICAgICAgICAgICAgICAgICAgSS5JUlEyID0gMHgwMDNjOwogICAgICAg ICAgICAgICAgfQogICAgICAgIH0KCn0KCgoKCnZvaWQgaTgwODVfc2V0X1JTVDY1KGludCBzdGF0 ZSkKewogICAgICAgIDsKICAgICAgICBpZiggc3RhdGUgKQogICAgICAgIHsKICAgICAgICAgICAg ICAgIEkuSVJFUSB8PSAweDAyOwogICAgICAgICAgICAgICAgaWYoIEkuSU0gJiAweDAyICkgcmV0 dXJuOwogICAgICAgICAgICAgICAgaWYoICFJLklTUlYgKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJLklTUlYgPSAweDAyOwogICAgICAgICAgICAgICAgICAgICAg ICBJLklSUTIgPSAweDAwMzQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVs c2UKICAgICAgICB7CiAgICAgICAgICAgICAgICBJLklSRVEgJj0gfjB4MDI7CiAgICAgICAgfQp9 CgoKCgp2b2lkIGk4MDg1X3NldF9SU1Q1NShpbnQgc3RhdGUpCnsKICAgICAgICA7CiAgICAgICAg aWYoIHN0YXRlICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBJLklSRVEgfD0gMHgwMTsKICAg ICAgICAgICAgICAgIGlmKCBJLklNICYgMHgwMSApIHJldHVybjsKICAgICAgICAgICAgICAgIGlm KCAhSS5JU1JWICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSS5J U1JWID0gMHgwMTsKICAgICAgICAgICAgICAgICAgICAgICAgSS5JUlEyID0gMHgwMDJjOwogICAg ICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAg ICAgICAgSS5JUkVRICY9IH4weDAxOwogICAgICAgIH0KfQoKCgoKdm9pZCBpODA4NV9zZXRfSU5U UihpbnQgc3RhdGUpCnsKICAgICAgICA7CiAgICAgICAgaWYoIHN0YXRlICkKICAgICAgICB7CiAg ICAgICAgICAgICAgICBJLklSRVEgfD0gMHgwODsKICAgICAgICAgICAgICAgIEkuSU5UUiA9IHN0 YXRlOwogICAgICAgICAgICAgICAgaWYoIEkuSU0gJiAweDA4ICkgcmV0dXJuOwogICAgICAgICAg ICAgICAgaWYoICFJLklTUlYgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJLklTUlYgPSAweDA4OwogICAgICAgICAgICAgICAgICAgICAgICBJLklSUTIgPSBJLklO VFI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAg ICAgICAgICAgICAgICBJLklSRVEgJj0gfjB4MDg7CiAgICAgICAgfQp9Cgp2b2lkIGk4MDg1X3Nl dF9pcnFfbGluZShpbnQgaXJxbGluZSwgaW50IHN0YXRlKQp7CiAgICAgICAgaWYgKGlycWxpbmUg PT0gSVJRX0xJTkVfTk1JKQogICAgICAgIHsKICAgICAgICAgICAgICAgIEkubm1pX3N0YXRlID0g c3RhdGU7CiAgICAgICAgICAgICAgICBpZiggc3RhdGUgIT0gQ0xFQVJfTElORSApCiAgICAgICAg ICAgICAgICAgICAgICAgIGk4MDg1X3NldF9UUkFQKDEpOwogICAgICAgIH0KICAgICAgICBlbHNl IGlmIChpcnFsaW5lIDwgNCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBJLmlycV9zdGF0ZVtp cnFsaW5lXSA9IHN0YXRlOwogICAgICAgICAgICAgICAgaWYgKHN0YXRlID09IENMRUFSX0xJTkUp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhKEkuSU0gJiAw eDIwKSApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzd2l0Y2ggKGlycWxpbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiBpODA4NV9z ZXRfSU5UUigwKTsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjYXNlIDE6IGk4MDg1X3NldF9SU1Q1NSgwKTsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXNlIDI6IGk4MDg1X3NldF9SU1Q2NSgwKTsgYnJlYWs7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6IGk4MDg1X3NldF9S U1Q3NSgwKTsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBJLklNICYgMHgy MCApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzd2l0Y2goIGlycWxpbmUgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDogaTgwODVfc2V0 X0lOVFIoMSk7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2FzZSAxOiBpODA4NV9zZXRfUlNUNTUoMSk7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FzZSAyOiBpODA4NV9zZXRfUlNUNjUoMSk7IGJyZWFrOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiBpODA4NV9zZXRfUlNU NzUoMSk7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KfQoKdm9pZCBpODA4 NV9zZXRfaXJxX2NhbGxiYWNrKGludCAoKmNhbGxiYWNrKShpbnQpKQp7CiAgICAgICAgSS5pcnFf Y2FsbGJhY2sgPSBjYWxsYmFjazsKfQoKCgoKY29uc3QgY2hhciAqaTgwODVfaW5mbyh2b2lkICpj b250ZXh0LCBpbnQgcmVnbnVtKQp7CiAgICAgICAgc3RhdGljIGNoYXIgYnVmZmVyWzE2XVs0Nysx XTsKICAgICAgICBzdGF0aWMgaW50IHdoaWNoID0gMDsKICAgICAgICBpODA4NV9SZWdzICpyID0g Y29udGV4dDsKCiAgICAgICAgd2hpY2ggPSAod2hpY2grMSkgJSAxNjsKICAgICAgICBidWZmZXJb d2hpY2hdWzBdID0gJ1wwJzsKICAgICAgICBpZiggIWNvbnRleHQgKQogICAgICAgICAgICAgICAg ciA9ICZJOwoKICAgICAgICBzd2l0Y2goIHJlZ251bSApCiAgICAgICAgewogICAgICAgICAgICAg ICAgY2FzZSBDUFVfSU5GT19SRUcrSTgwODVfQUY6IHNwcmludGYoYnVmZmVyW3doaWNoXSwgIkFG OiUwNFgiLCByLT5BRi53LmwpOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9f UkVHK0k4MDg1X0JDOiBzcHJpbnRmKGJ1ZmZlclt3aGljaF0sICJCQzolMDRYIiwgci0+QkMudy5s KTsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIENQVV9JTkZPX1JFRytJODA4NV9ERTogc3By aW50ZihidWZmZXJbd2hpY2hdLCAiREU6JTA0WCIsIHItPkRFLncubCk7IGJyZWFrOwogICAgICAg ICAgICAgICAgY2FzZSBDUFVfSU5GT19SRUcrSTgwODVfSEw6IHNwcmludGYoYnVmZmVyW3doaWNo XSwgIkhMOiUwNFgiLCByLT5ITC53LmwpOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQ1BV X0lORk9fUkVHK0k4MDg1X1NQOiBzcHJpbnRmKGJ1ZmZlclt3aGljaF0sICJTUDolMDRYIiwgci0+ U1Audy5sKTsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIENQVV9JTkZPX1JFRytJODA4NV9Q Qzogc3ByaW50ZihidWZmZXJbd2hpY2hdLCAiUEM6JTA0WCIsIHItPlBDLncubCk7IGJyZWFrOwog ICAgICAgICAgICAgICAgY2FzZSBDUFVfSU5GT19SRUcrSTgwODVfSU06IHNwcmludGYoYnVmZmVy W3doaWNoXSwgIklNOiUwMlgiLCByLT5JTSk7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBD UFVfSU5GT19SRUcrSTgwODVfSEFMVDogc3ByaW50ZihidWZmZXJbd2hpY2hdLCAiSEFMVDolZCIs IHItPkhBTFQpOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fUkVHK0k4MDg1 X0lSRVE6IHNwcmludGYoYnVmZmVyW3doaWNoXSwgIklSRVE6JTAyWCIsIEkuSVJFUSk7IGJyZWFr OwogICAgICAgICAgICAgICAgY2FzZSBDUFVfSU5GT19SRUcrSTgwODVfSVNSVjogc3ByaW50Zihi dWZmZXJbd2hpY2hdLCAiSVNSVjolMDJYIiwgSS5JU1JWKTsgYnJlYWs7CiAgICAgICAgICAgICAg ICBjYXNlIENQVV9JTkZPX1JFRytJODA4NV9WRUNUT1I6IHNwcmludGYoYnVmZmVyW3doaWNoXSwg IlZFQzolMDJYIiwgSS5JTlRSKTsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIENQVV9JTkZP X1JFRytJODA4NV9UUkFQX1NUQVRFOiBzcHJpbnRmKGJ1ZmZlclt3aGljaF0sICJUUkFQOiVYIiwg SS5ubWlfc3RhdGUpOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fUkVHK0k4 MDg1X0lOVFJfU1RBVEU6IHNwcmludGYoYnVmZmVyW3doaWNoXSwgIklOVFI6JVgiLCBJLmlycV9z dGF0ZVswXSk7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBDUFVfSU5GT19SRUcrSTgwODVf UlNUNTVfU1RBVEU6IHNwcmludGYoYnVmZmVyW3doaWNoXSwgIlJTVDU1OiVYIiwgSS5pcnFfc3Rh dGVbMV0pOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fUkVHK0k4MDg1X1JT VDY1X1NUQVRFOiBzcHJpbnRmKGJ1ZmZlclt3aGljaF0sICJSU1Q2NTolWCIsIEkuaXJxX3N0YXRl WzJdKTsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIENQVV9JTkZPX1JFRytJODA4NV9SU1Q3 NV9TVEFURTogc3ByaW50ZihidWZmZXJbd2hpY2hdLCAiUlNUNzU6JVgiLCBJLmlycV9zdGF0ZVsz XSk7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBDUFVfSU5GT19GTEFHUzoKICAgICAgICAg ICAgICAgICAgICAgICAgc3ByaW50ZihidWZmZXJbd2hpY2hdLCAiJWMlYyVjJWMlYyVjJWMlYyIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5sICYgMHg4MCA/ICdTJzon LicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5sICYgMHg0MCA/ICda JzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5sICYgMHgyMCA/ ICc/JzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5sICYgMHgx MCA/ICdIJzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5sICYg MHgwOCA/ICc/JzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYuYi5s ICYgMHgwNCA/ICdQJzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+QUYu Yi5sICYgMHgwMiA/ICdOJzonLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+ QUYuYi5sICYgMHgwMSA/ICdDJzonLicpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fTkFNRTogcmV0dXJuICI4MDg1QSI7CiAgICAg ICAgICAgICAgICBjYXNlIENQVV9JTkZPX0ZBTUlMWTogcmV0dXJuICJJbnRlbCA4MDgwIjsKICAg ICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fVkVSU0lPTjogcmV0dXJuICIxLjEiOwogICAgICAg ICAgICAgICAgY2FzZSBDUFVfSU5GT19GSUxFOiByZXR1cm4gInNyYy9jcHUvaTgwODUvaTgwODUu YyI7CiAgICAgICAgICAgICAgICBjYXNlIENQVV9JTkZPX0NSRURJVFM6IHJldHVybiAiQ29weXJp Z2h0IChjKSAxOTk5IEp1ZXJnZW4gQnVjaG11ZWxsZXIsIGFsbCByaWdodHMgcmVzZXJ2ZWQuIjsK ICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fUkVHX0xBWU9VVDogcmV0dXJuIChjb25zdCBj aGFyICopaTgwODVfcmVnX2xheW91dDsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9fV0lO X0xBWU9VVDogcmV0dXJuIChjb25zdCBjaGFyICopaTgwODVfd2luX2xheW91dDsKICAgICAgICB9 CiAgICAgICAgcmV0dXJuIGJ1ZmZlclt3aGljaF07Cn0KCnVuc2lnbmVkIGk4MDg1X2Rhc20oY2hh ciAqYnVmZmVyLCB1bnNpZ25lZCBwYykKewoKCgogICAgICAgIHNwcmludGYoIGJ1ZmZlciwgIiQl MDJYIiwgKE9QX1JPTVsocGMpICYgbWVtX2FtYXNrXSkgKTsKICAgICAgICByZXR1cm4gMTsKCn0K CgoKCgoKCnN0YXRpYyBVSU5UOCBpODA4MF9yZWdfbGF5b3V0W10gPSB7CiAgICAgICAgSTgwODVf QUYsIEk4MDg1X0JDLCBJODA4NV9ERSwgSTgwODVfSEwsIEk4MDg1X1NQLCBJODA4NV9QQywgLTEs CiAgICAgICAgSTgwODVfSEFMVCwgSTgwODVfSVJFUSwgSTgwODVfSVNSViwgSTgwODVfVkVDVE9S LCBJODA4NV9UUkFQX1NUQVRFLCBJODA4NV9JTlRSX1NUQVRFLAogICAgICAgIDAgfTsKCgpzdGF0 aWMgVUlOVDggaTgwODBfd2luX2xheW91dFtdID0gewogICAgICAgIDI1LCAwLDU1LCAyLAogICAg ICAgICAwLCAwLDI0LDIyLAogICAgICAgIDI1LCAzLDU1LDEwLAogICAgICAgIDI1LDE0LDU1LCA4 LAogICAgICAgICAwLDIzLDgwLCAxLAp9OwoKdm9pZCBpODA4MF9pbml0KHZvaWQpCnsKICAgICAg ICBpbnQgY3B1ID0gY3B1X2dldGFjdGl2ZWNwdSgpOwogICAgICAgIGluaXRfdGFibGVzKCk7CiAg ICAgICAgSS5jcHV0eXBlID0gMDsKCiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMTYo Imk4MDgwIiwgY3B1LCAiQUYiLCAmSS5BRi53LmwsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVn aXN0ZXJfVUlOVDE2KCJpODA4MCIsIGNwdSwgIkJDIiwgJkkuQkMudy5sLCAxKTsKICAgICAgICBz dGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQxNigiaTgwODAiLCBjcHUsICJERSIsICZJLkRFLncubCwg MSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMTYoImk4MDgwIiwgY3B1LCAiSEwi LCAmSS5ITC53LmwsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVnaXN0ZXJfVUlOVDE2KCJpODA4 MCIsIGNwdSwgIlNQIiwgJkkuU1Audy5sLCAxKTsKICAgICAgICBzdGF0ZV9zYXZlX3JlZ2lzdGVy X1VJTlQxNigiaTgwODAiLCBjcHUsICJQQyIsICZJLlBDLncubCwgMSk7CiAgICAgICAgc3RhdGVf c2F2ZV9yZWdpc3Rlcl9VSU5UOCgiaTgwODAiLCBjcHUsICJIQUxUIiwgJkkuSEFMVCwgMSk7CiAg ICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UOCgiaTgwODAiLCBjcHUsICJJUkVRIiwgJkku SVJFUSwgMSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UOCgiaTgwODAiLCBjcHUs ICJJU1JWIiwgJkkuSVNSViwgMSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9VSU5UMzIo Imk4MDgwIiwgY3B1LCAiSU5UUiIsICZJLklOVFIsIDEpOwogICAgICAgIHN0YXRlX3NhdmVfcmVn aXN0ZXJfVUlOVDMyKCJpODA4MCIsIGNwdSwgIklSUTIiLCAmSS5JUlEyLCAxKTsKICAgICAgICBz dGF0ZV9zYXZlX3JlZ2lzdGVyX1VJTlQzMigiaTgwODAiLCBjcHUsICJJUlExIiwgJkkuSVJRMSwg MSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9JTlQ4KCJpODA4MCIsIGNwdSwgIm5taV9z dGF0ZSIsICZJLm5taV9zdGF0ZSwgMSk7CiAgICAgICAgc3RhdGVfc2F2ZV9yZWdpc3Rlcl9JTlQ4 KCJpODA4MCIsIGNwdSwgImlycV9zdGF0ZSIsIEkuaXJxX3N0YXRlLCAxKTsKfQoKdm9pZCBpODA4 MF9yZXNldCh2b2lkICpwYXJhbSkgeyBpODA4NV9yZXNldChwYXJhbSk7IH0Kdm9pZCBpODA4MF9l eGl0KHZvaWQpIHsgaTgwODVfZXhpdCgpOyB9CmludCBpODA4MF9leGVjdXRlKGludCBjeWNsZXMp IHsgcmV0dXJuIGk4MDg1X2V4ZWN1dGUoY3ljbGVzKTsgfQp1bnNpZ25lZCBpODA4MF9nZXRfY29u dGV4dCh2b2lkICpkc3QpIHsgcmV0dXJuIGk4MDg1X2dldF9jb250ZXh0KGRzdCk7IH0Kdm9pZCBp ODA4MF9zZXRfY29udGV4dCh2b2lkICpzcmMpIHsgaTgwODVfc2V0X2NvbnRleHQoc3JjKTsgfQp1 bnNpZ25lZCBpODA4MF9nZXRfcmVnKGludCByZWdudW0pIHsgcmV0dXJuIGk4MDg1X2dldF9yZWco cmVnbnVtKTsgfQp2b2lkIGk4MDgwX3NldF9yZWcoaW50IHJlZ251bSwgdW5zaWduZWQgdmFsKSB7 IGk4MDg1X3NldF9yZWcocmVnbnVtLHZhbCk7IH0Kdm9pZCBpODA4MF9zZXRfaXJxX2xpbmUoaW50 IGlycWxpbmUsIGludCBzdGF0ZSkKewogICAgICAgIGlmIChpcnFsaW5lID09IElSUV9MSU5FX05N SSkKICAgICAgICB7CiAgICAgICAgICAgICAgICBpODA4NV9zZXRfaXJxX2xpbmUoaXJxbGluZSwg c3RhdGUpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAgICAg SS5pcnFfc3RhdGVbaXJxbGluZV0gPSBzdGF0ZTsKICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9 PSBDTEVBUl9MSU5FKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBp ZiAoIShJLklNICYgMHgyMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTgwODVf c2V0X0lOVFIoMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChJLklNICYgMHgyMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpODA4NV9zZXRfSU5UUigxKTsKICAgICAgICAg ICAgICAgIH0KICAgICAgICB9Cn0Kdm9pZCBpODA4MF9zZXRfaXJxX2NhbGxiYWNrKGludCAoKmNh bGxiYWNrKShpbnQgaXJxbGluZSkpIHsgaTgwODVfc2V0X2lycV9jYWxsYmFjayhjYWxsYmFjayk7 IH0KY29uc3QgY2hhciAqaTgwODBfaW5mbyh2b2lkICpjb250ZXh0LCBpbnQgcmVnbnVtKQp7CiAg ICAgICAgc3dpdGNoKCByZWdudW0gKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGNhc2UgQ1BV X0lORk9fTkFNRTogcmV0dXJuICI4MDgwIjsKICAgICAgICAgICAgICAgIGNhc2UgQ1BVX0lORk9f VkVSU0lPTjogcmV0dXJuICIxLjIiOwogICAgICAgICAgICAgICAgY2FzZSBDUFVfSU5GT19SRUdf TEFZT1VUOiByZXR1cm4gKGNvbnN0IGNoYXIgKilpODA4MF9yZWdfbGF5b3V0OwogICAgICAgICAg ICAgICAgY2FzZSBDUFVfSU5GT19XSU5fTEFZT1VUOiByZXR1cm4gKGNvbnN0IGNoYXIgKilpODA4 MF93aW5fbGF5b3V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gaTgwODVfaW5mbyhjb250ZXh0 LHJlZ251bSk7Cn0KCnVuc2lnbmVkIGk4MDgwX2Rhc20oY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBw YykKewoKCgogICAgICAgIHNwcmludGYoIGJ1ZmZlciwgIiQlMDJYIiwgKE9QX1JPTVsocGMpICYg bWVtX2FtYXNrXSkgKTsKICAgICAgICByZXR1cm4gMTsKCn0K