Received: by 2002:ab2:6991:0:b0:1f7:f6c3:9cb1 with SMTP id v17csp955289lqo; Wed, 8 May 2024 23:38:54 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVTJTvH2BTaHlx0t0W/DTgBiRqS7jQ3Q6JfLZzC9/rLiRl1ksT14iRfbwdsBn82bu5g5iHPlgkH4CU12mJCVEBzjvKJrAFqQ2W+GnlkLg== X-Google-Smtp-Source: AGHT+IGPvycpNRmi5YI9CuTxCwtXoJpqMz9mautVop1N+EQZ5CScwKh0cYqXZOpov3sp9WbDtDd+ X-Received: by 2002:a67:f542:0:b0:47b:b129:2890 with SMTP id ada2fe7eead31-47f3c2e93f5mr4458055137.18.1715236734076; Wed, 08 May 2024 23:38:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715236734; cv=pass; d=google.com; s=arc-20160816; b=qbePuaf0KzsclI86F274BXKm8eUm9S+WZD3vjuvMPV10WrFlG7lhZ/kK7VCyUy675A GGtTjxw1idCfxM+1vkGOf8jqLPZBiAp4cK0xzRJtEi0x7SgtVn26Jxh5+JrYSfOQrOZu 6B1rFr7MTRctmYLaR5IZ0FrIBurXhgnJ+jiP8G43tyXklR/yj5jm8fCXDB0R2cnm9A2W VJ2I3BqnT7ldYRyhfw3viznQBmrSH2uReXU7Ho5EzMiqQcZMQlX6XZB7NeAjHrkGdoZ1 M+Aw+JfELUf6C6Ip4oCLMSMdIxswK6JpDnMxypbNX9ZqflT34ResuOqKxHLmai0IH8sO Y8lQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:message-id:reply-to:cc:to:from:date; bh=tRHeUK6rgiQBNgfwz1huwqQ+6UBt02S6pEWCCik+qtY=; fh=8w6GOM3seJDNo+3M6yYZuvlSo+iJYGSbBFic530emag=; b=k47Xh5UPnryu8MlC8ddkB0TMxuD7iuW9xIqhw7cNoRudctbGazpLCob0cW3ByXva1O Tp1dRyC2XUhGtBxWCMEkAH6xZUmTcMh3eS/38b0I7xztKegeZmQYHo6z+HsJ+/nJlIyv QhhGECZL22ciUQNWLXShLc0JAPfjeZGSIhewdqzkSNr3O8JAW9s+GqG/523VnPn1Wilr NEwsEXTDUSiLRYwJqncSuYHFkeGH1RhnEOvZvYuyU8wJhNoaZE3Gn0aEpRsdVL8PbloI 0P82n0h4ZvJ6gbrh/cZoQIzLgI5ez18uB+3r0I7wOPk/sQP3EYZ8Q7XO+YuTm7/snw+2 OgrA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-174203-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-174203-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d75a77b69052e-43df549ed39si8159861cf.120.2024.05.08.23.38.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 May 2024 23:38:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-174203-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-174203-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-174203-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id B98E71C224B8 for ; Thu, 9 May 2024 06:38:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 235AF6FCB; Thu, 9 May 2024 06:38:48 +0000 (UTC) Received: from out28-50.mail.aliyun.com (out28-50.mail.aliyun.com [115.124.28.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77C042CA9; Thu, 9 May 2024 06:38:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.28.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715236726; cv=none; b=l/Qw+YHHxPYJqMA64LzdCGzCqVhp5dCbjT4HfFxigZRHl+N7Qckm/NudwtSdEXXHvWcSXZ3yYcjdKDGS2nUIgQRz1VtPaoU/pdUBm4mz6WE7DL70mCMownHX0yuK11fvYFdgWtMeYAzOWVjLM32w2GeVO1GWg2uV6XyyHltQQmA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715236726; c=relaxed/simple; bh=tRHeUK6rgiQBNgfwz1huwqQ+6UBt02S6pEWCCik+qtY=; h=Date:From:To:Cc:Message-ID:Subject:MIME-Version:Content-Type; b=OudMAXnnbI9tAI9/M+3lQkvjGK0g6M5478o+YxyoTClI0Xh7DsmveE0bSUFXUUCWqAac1Nq5dRs4H0ZIYfxVVWOVrU/aKl+edTXUS1iPl8y5Gfc4wxhsEqX7Z9S24yXowabO4GOnxYuaITfEU/ZE5AYNkLHWzsU6Nbslr8yifv8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com; spf=pass smtp.mailfrom=ubisectech.com; arc=none smtp.client-ip=115.124.28.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ubisectech.com X-Alimail-AntiSpam:AC=CONTINUE;BC=0.09581529|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0352504-0.00302161-0.961728;FP=0|0|0|0|0|0|0|0;HT=ay29a033018047213;MF=bugreport@ubisectech.com;NM=1;PH=DW;RN=5;RT=5;SR=0;TI=W4_0.2.3_v5ForWebDing_21250B10_1715236398049_o7001c65g; Received: from WS-web (bugreport@ubisectech.com[W4_0.2.3_v5ForWebDing_21250B10_1715236398049_o7001c65g]) at Thu, 09 May 2024 14:33:18 +0800 Date: Thu, 09 May 2024 14:33:18 +0800 From: "Ubisectech Sirius" To: "linux-trace-kernel" , "linux-kernel" Cc: "ebiggers" , "tytso" , "jaegeuk" Reply-To: "Ubisectech Sirius" Message-ID: Subject: =?UTF-8?B?V0FSTklORyBpbiBmc2NyeXB0X2ZuYW1lX3NpcGhhc2g=?= X-Mailer: [Alimail-Mailagent revision 4293][W4_0.2.3][v5ForWebDing][Chrome] Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_M3LTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyNC4wLjAuMCBTYWZhcmkvNTM3LjM2vN Content-Type: multipart/mixed; boundary="----=ALIBOUNDARY_40248_7f0bd7248700_663c6e2e_2765" This is a multi-part message in MIME format. ------=ALIBOUNDARY_40248_7f0bd7248700_663c6e2e_2765 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGVsbG8uCldlIGFyZSBVYmlzZWN0ZWNoIFNpcml1cyBUZWFtLCB0aGUgdnVsbmVyYWJpbGl0eSBs YWIgb2YgQ2hpbmEgVmFsaWFudFNlYy4gUmVjZW50bHksIG91ciB0ZWFtIGhhcyBkaXNjb3ZlcmVk IGEgaXNzdWUgaW4gTGludXgga2VybmVsIDYuNy4gQXR0YWNoZWQgdG8gdGhlIGVtYWlsIHdlcmUg YSBQb0MgZmlsZSBvZiB0aGUgaXNzdWUuCgpTdGFjayBkdW1wOgoKLS0tLS0tLS0tLS0tWyBjdXQg aGVyZSBdLS0tLS0tLS0tLS0tCldBUk5JTkc6IENQVTogMCBQSUQ6IDEwMDcwIGF0IGZzL2NyeXB0 by9mbmFtZS5jOjU3MyBmc2NyeXB0X2ZuYW1lX3NpcGhhc2grMHhkZi8weDEyMCBmcy9jcnlwdG8v Zm5hbWUuYzo1NzMKTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMCBQSUQ6IDEwMDcwIENvbW06IHN5 ei1leGVjdXRvci4yIE5vdCB0YWludGVkIDYuNy4wICMyCkhhcmR3YXJlIG5hbWU6IFFFTVUgU3Rh bmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuMTUuMC0xIDA0LzAxLzIwMTQK UklQOiAwMDEwOmZzY3J5cHRfZm5hbWVfc2lwaGFzaCsweGRmLzB4MTIwIGZzL2NyeXB0by9mbmFt ZS5jOjU3MwpDb2RlOiAwMCAwMCAwMCBmYyBmZiBkZiA0OCA4OSBmOSA0OCBjMSBlOSAwMyA4MCAz YyAwMSAwMCA3NSAzZiA0OCA4YiA3YiAwOCA0OCA4MyBjNCAxMCA1YiA1ZCA0MSA1YyBlOSBkNyA3 OSA2ZSAwOCBlOCBmMiBhMiA4MCBmZiA5MCA8MGY+IDBiIDkwIGViIDkzIDQ4IDg5IDE0IDI0IGU4 IGIzIDViIGQ3IGZmIDQ4IDhiIDE0IDI0IGViIGI3IGU4IDQ4ClJTUDogMDAxODpmZmZmYzkwMDAy ODg3MjM4IEVGTEFHUzogMDAwMTAyNDYKUkFYOiAwMDAwMDAwMDAwMDQwMDAwIFJCWDogZmZmZmM5 MDAwMjg4NzJkMCBSQ1g6IGZmZmZjOTAwMDMwY2IwMDAKUkRYOiAwMDAwMDAwMDAwMDQwMDAwIFJT STogZmZmZmZmZmY4MjA5NTM1ZSBSREk6IDAwMDAwMDAwMDAwMDAwMDEKUkJQOiBmZmZmODg4MDYz MDY1MTgwIFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAw MDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDA4ZDRjNGQ5MSBSMTI6IDAwMDAwMDAwMDAwMDAw MDAKUjEzOiAwMDAwMDAwMDAwMDAwMDAxIFIxNDogZGZmZmZjMDAwMDAwMDAwMCBSMTU6IGZmZmY4 ODgwNTZhYmEwYzQKRlM6ICAwMDAwN2ZmNjNiODZmNjQwKDAwMDApIEdTOmZmZmY4ODgwMmM2MDAw MDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAw MDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDdmZjU0NDIzOThlMCBDUjM6IDAwMDAw MDAwNTdmZDgwMDAgQ1I0OiAwMDAwMDAwMDAwNzUwZWYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBE UjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAw MDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwClBLUlU6 IDU1NTU1NTU0CkNhbGwgVHJhY2U6CiA8VEFTSz4KIF9fZXh0NGZzX2Rpcmhhc2grMHgzNmEvMHhi NjAgZnMvZXh0NC9oYXNoLmM6MjY4CiBleHQ0ZnNfZGlyaGFzaCsweDI0Ni8weDJkMCBmcy9leHQ0 L2hhc2guYzozMjIKIGh0cmVlX2RpcmJsb2NrX3RvX3RyZWUrMHg4MjEvMHhjOTAgZnMvZXh0NC9u YW1laS5jOjExMjQKIGV4dDRfaHRyZWVfZmlsbF90cmVlKzB4MzJkLzB4YzQwIGZzL2V4dDQvbmFt ZWkuYzoxMjE5CiBleHQ0X2R4X3JlYWRkaXIgZnMvZXh0NC9kaXIuYzo1OTcgW2lubGluZV0KIGV4 dDRfcmVhZGRpcisweDFkMmQvMHgzNmEwIGZzL2V4dDQvZGlyLmM6MTQyCiBpdGVyYXRlX2Rpcisw eDFmNC8weDVjMCBmcy9yZWFkZGlyLmM6MTA2CiBvdmxfZGlyX3JlYWQgZnMvb3ZlcmxheWZzL3Jl YWRkaXIuYzozMTUgW2lubGluZV0KIG92bF9pbmRleGRpcl9jbGVhbnVwKzB4MmUyLzB4OTQwIGZz L292ZXJsYXlmcy9yZWFkZGlyLmM6MTE4Mwogb3ZsX2dldF9pbmRleGRpciBmcy9vdmVybGF5ZnMv c3VwZXIuYzo4ODcgW2lubGluZV0KIG92bF9maWxsX3N1cGVyKzB4NDE0ZC8weDY1NjAgZnMvb3Zl cmxheWZzL3N1cGVyLmM6MTQwNAogdmZzX2dldF9zdXBlciBmcy9zdXBlci5jOjEzMzggW2lubGlu ZV0KIGdldF90cmVlX25vZGV2KzB4ZGEvMHgxOTAgZnMvc3VwZXIuYzoxMzU3CiB2ZnNfZ2V0X3Ry ZWUrMHg5My8weDM4MCBmcy9zdXBlci5jOjE3NzEKIGRvX25ld19tb3VudCBmcy9uYW1lc3BhY2Uu YzozMzM3IFtpbmxpbmVdCiBwYXRoX21vdW50KzB4Njc5LzB4MWU0MCBmcy9uYW1lc3BhY2UuYzoz NjY0CiBkb19tb3VudCBmcy9uYW1lc3BhY2UuYzozNjc3IFtpbmxpbmVdCiBfX2RvX3N5c19tb3Vu dCBmcy9uYW1lc3BhY2UuYzozODg2IFtpbmxpbmVdCiBfX3NlX3N5c19tb3VudCBmcy9uYW1lc3Bh Y2UuYzozODYzIFtpbmxpbmVdCiBfX3g2NF9zeXNfbW91bnQrMHgyODcvMHgzMTAgZnMvbmFtZXNw YWNlLmM6Mzg2MwogZG9fc3lzY2FsbF94NjQgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6NTIgW2lu bGluZV0KIGRvX3N5c2NhbGxfNjQrMHg0My8weDEyMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzo4 MwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NmYvMHg3NwpSSVA6IDAwMzM6MHg3 ZmY2M2FhOGZkNmQKQ29kZTogYzMgZTggOTcgMmIgMDAgMDAgMGYgMWYgODAgMDAgMDAgMDAgMDAg ZjMgMGYgMWUgZmEgNDggODkgZjggNDggODkgZjcgNDggODkgZDYgNDggODkgY2EgNGQgODkgYzIg NGQgODkgYzggNGMgOGIgNGMgMjQgMDggMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAwMSBj MyA0OCBjNyBjMSBiMCBmZiBmZiBmZiBmNyBkOCA2NCA4OSAwMSA0OApSU1A6IDAwMmI6MDAwMDdm ZjYzYjg2ZjAyOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGE1ClJB WDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA3ZmY2M2FiY2MxMjAgUkNYOiAwMDAwN2ZmNjNh YThmZDZkClJEWDogMDAwMDAwMDAyMDAwMDAwMCBSU0k6IDAwMDAwMDAwMjAwMDAwNDAgUkRJOiAw MDAwMDAwMDAwMDAwMDAwClJCUDogMDAwMDdmZjYzYWFmMTRjZCBSMDg6IDAwMDAwMDAwMjAwMDAx NDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAw MDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClIxMzogMDAwMDAwMDAwMDAwMDA2ZSBS MTQ6IDAwMDA3ZmY2M2FiY2MxMjAgUjE1OiAwMDAwN2ZmNjNiODRmMDAwCiA8L1RBU0s+CgpUaGFu ayB5b3UgZm9yIHRha2luZyB0aGUgdGltZSB0byByZWFkIHRoaXMgZW1haWwgYW5kIHdlIGxvb2sg Zm9yd2FyZCB0byB3b3JraW5nIHdpdGggeW91IGZ1cnRoZXIuCgoKCg== ------=ALIBOUNDARY_40248_7f0bd7248700_663c6e2e_2765 Content-Type: application/octet-stream Content-Disposition: attachment; filename="=?UTF-8?B?cG9jLmM=?=" Content-Transfer-Encoding: base64 Ly8gYXV0b2dlbmVyYXRlZCBieSBzeXprYWxsZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv c3l6a2FsbGVyKQoKI2RlZmluZSBfR05VX1NPVVJDRQoKI2luY2x1ZGUgPGVuZGlhbi5oPgojaW5j bHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxzZXRqbXAuaD4KI2lu Y2x1ZGUgPHNpZ25hbC5oPgojaW5jbHVkZSA8c3RkYm9vbC5oPgojaW5jbHVkZSA8c3RkZGVmLmg+ CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIu aD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRlIDxz eXMvbW1hbi5oPgojaW5jbHVkZSA8c3lzL21vdW50Lmg+CiNpbmNsdWRlIDxzeXMvc3RhdC5oPgoj aW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8 dW5pc3RkLmg+CgojaW5jbHVkZSA8bGludXgvbG9vcC5oPgoKI2lmbmRlZiBfX05SX21lbWZkX2Ny ZWF0ZQojZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDMxOQojZW5kaWYKCnN0YXRpYyB1bnNpZ25l ZCBsb25nIGxvbmcgcHJvY2lkOwoKc3RhdGljIF9fdGhyZWFkIGludCBjbG9uZV9vbmdvaW5nOwpz dGF0aWMgX190aHJlYWQgaW50IHNraXBfc2VndjsKc3RhdGljIF9fdGhyZWFkIGptcF9idWYgc2Vn dl9lbnY7CgpzdGF0aWMgdm9pZCBzZWd2X2hhbmRsZXIoaW50IHNpZywgc2lnaW5mb190KiBpbmZv LCB2b2lkKiBjdHgpCnsKICBpZiAoX19hdG9taWNfbG9hZF9uKCZjbG9uZV9vbmdvaW5nLCBfX0FU T01JQ19SRUxBWEVEKSAhPSAwKSB7CiAgICBleGl0KHNpZyk7CiAgfQogIHVpbnRwdHJfdCBhZGRy ID0gKHVpbnRwdHJfdClpbmZvLT5zaV9hZGRyOwogIGNvbnN0IHVpbnRwdHJfdCBwcm9nX3N0YXJ0 ID0gMSA8PCAyMDsKICBjb25zdCB1aW50cHRyX3QgcHJvZ19lbmQgPSAxMDAgPDwgMjA7CiAgaW50 IHNraXAgPSBfX2F0b21pY19sb2FkX24oJnNraXBfc2VndiwgX19BVE9NSUNfUkVMQVhFRCkgIT0g MDsKICBpbnQgdmFsaWQgPSBhZGRyIDwgcHJvZ19zdGFydCB8fCBhZGRyID4gcHJvZ19lbmQ7CiAg aWYgKHNraXAgJiYgdmFsaWQpIHsKICAgIF9sb25nam1wKHNlZ3ZfZW52LCAxKTsKICB9CiAgZXhp dChzaWcpOwp9CgpzdGF0aWMgdm9pZCBpbnN0YWxsX3NlZ3ZfaGFuZGxlcih2b2lkKQp7CiAgc3Ry dWN0IHNpZ2FjdGlvbiBzYTsKICBtZW1zZXQoJnNhLCAwLCBzaXplb2Yoc2EpKTsKICBzYS5zYV9o YW5kbGVyID0gU0lHX0lHTjsKICBzeXNjYWxsKFNZU19ydF9zaWdhY3Rpb24sIDB4MjAsICZzYSwg TlVMTCwgOCk7CiAgc3lzY2FsbChTWVNfcnRfc2lnYWN0aW9uLCAweDIxLCAmc2EsIE5VTEwsIDgp OwogIG1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOwogIHNhLnNhX3NpZ2FjdGlvbiA9IHNlZ3Zf aGFuZGxlcjsKICBzYS5zYV9mbGFncyA9IFNBX05PREVGRVIgfCBTQV9TSUdJTkZPOwogIHNpZ2Fj dGlvbihTSUdTRUdWLCAmc2EsIE5VTEwpOwogIHNpZ2FjdGlvbihTSUdCVVMsICZzYSwgTlVMTCk7 Cn0KCiNkZWZpbmUgTk9ORkFJTElORyguLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBp bnQgb2sgPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICBfX2F0b21pY19mZXRjaF9hZGQoJnNraXBfc2VndiwgMSwg X19BVE9NSUNfU0VRX0NTVCk7ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpZiAoX3NldGpt cChzZWd2X2VudikgPT0gMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IGVsc2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgIG9rID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfX2F0b21pY19mZXRjaF9zdWIoJnNraXBfc2Vn diwgMSwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBvazsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgfSkKCi8vJSBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHB1ZmYu e2MsaH0sIGZvdW5kIGluIHRoZSB6bGliIGRldmVsb3BtZW50LiBUaGUKLy8lIG9yaWdpbmFsIGZp bGVzIGNvbWUgd2l0aCB0aGUgZm9sbG93aW5nIGNvcHlyaWdodCBub3RpY2U6CgovLyUgQ29weXJp Z2h0IChDKSAyMDAyLTIwMTMgTWFyayBBZGxlciwgYWxsIHJpZ2h0cyByZXNlcnZlZAovLyUgdmVy c2lvbiAyLjMsIDIxIEphbiAyMDEzCi8vJSBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1p cycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAovLyUgd2FycmFudHkuICBJbiBubyBl dmVudCB3aWxsIHRoZSBhdXRob3IgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vJSBh cmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgovLyUgUGVybWlzc2lvbiBpcyBn cmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCi8v JSBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQg cmVkaXN0cmlidXRlIGl0Ci8vJSBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0 cmljdGlvbnM6Ci8vJSAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUg bWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAovLyUgICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUg dGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKLy8lICAgIGlu IGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlv biB3b3VsZCBiZQovLyUgICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KLy8lIDIu IEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwg YW5kIG11c3Qgbm90IGJlCi8vJSAgICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2lu YWwgc29mdHdhcmUuCi8vJSAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0 ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgovLyUgTWFyayBBZGxlciAgICBtYWRs ZXJAYWx1bW5pLmNhbHRlY2guZWR1CgovLyUgQkVHSU4gQ09ERSBERVJJVkVEIEZST00gcHVmZi57 YyxofQoKI2RlZmluZSBNQVhCSVRTIDE1CiNkZWZpbmUgTUFYTENPREVTIDI4NgojZGVmaW5lIE1B WERDT0RFUyAzMAojZGVmaW5lIE1BWENPREVTIChNQVhMQ09ERVMgKyBNQVhEQ09ERVMpCiNkZWZp bmUgRklYTENPREVTIDI4OAoKc3RydWN0IHB1ZmZfc3RhdGUgewogIHVuc2lnbmVkIGNoYXIqIG91 dDsKICB1bnNpZ25lZCBsb25nIG91dGxlbjsKICB1bnNpZ25lZCBsb25nIG91dGNudDsKICBjb25z dCB1bnNpZ25lZCBjaGFyKiBpbjsKICB1bnNpZ25lZCBsb25nIGlubGVuOwogIHVuc2lnbmVkIGxv bmcgaW5jbnQ7CiAgaW50IGJpdGJ1ZjsKICBpbnQgYml0Y250OwogIGptcF9idWYgZW52Owp9Owpz dGF0aWMgaW50IHB1ZmZfYml0cyhzdHJ1Y3QgcHVmZl9zdGF0ZSogcywgaW50IG5lZWQpCnsKICBs b25nIHZhbCA9IHMtPmJpdGJ1ZjsKICB3aGlsZSAocy0+Yml0Y250IDwgbmVlZCkgewogICAgaWYg KHMtPmluY250ID09IHMtPmlubGVuKQogICAgICBsb25nam1wKHMtPmVudiwgMSk7CiAgICB2YWwg fD0gKGxvbmcpKHMtPmluW3MtPmluY250KytdKSA8PCBzLT5iaXRjbnQ7CiAgICBzLT5iaXRjbnQg Kz0gODsKICB9CiAgcy0+Yml0YnVmID0gKGludCkodmFsID4+IG5lZWQpOwogIHMtPmJpdGNudCAt PSBuZWVkOwogIHJldHVybiAoaW50KSh2YWwgJiAoKDFMIDw8IG5lZWQpIC0gMSkpOwp9CnN0YXRp YyBpbnQgcHVmZl9zdG9yZWQoc3RydWN0IHB1ZmZfc3RhdGUqIHMpCnsKICBzLT5iaXRidWYgPSAw OwogIHMtPmJpdGNudCA9IDA7CiAgaWYgKHMtPmluY250ICsgNCA+IHMtPmlubGVuKQogICAgcmV0 dXJuIDI7CiAgdW5zaWduZWQgbGVuID0gcy0+aW5bcy0+aW5jbnQrK107CiAgbGVuIHw9IHMtPmlu W3MtPmluY250KytdIDw8IDg7CiAgaWYgKHMtPmluW3MtPmluY250KytdICE9ICh+bGVuICYgMHhm ZikgfHwKICAgICAgcy0+aW5bcy0+aW5jbnQrK10gIT0gKCh+bGVuID4+IDgpICYgMHhmZikpCiAg ICByZXR1cm4gLTI7CiAgaWYgKHMtPmluY250ICsgbGVuID4gcy0+aW5sZW4pCiAgICByZXR1cm4g MjsKICBpZiAocy0+b3V0Y250ICsgbGVuID4gcy0+b3V0bGVuKQogICAgcmV0dXJuIDE7CiAgZm9y ICg7IGxlbi0tOyBzLT5vdXRjbnQrKywgcy0+aW5jbnQrKykgewogICAgaWYgKHMtPmluW3MtPmlu Y250XSkKICAgICAgcy0+b3V0W3MtPm91dGNudF0gPSBzLT5pbltzLT5pbmNudF07CiAgfQogIHJl dHVybiAwOwp9CnN0cnVjdCBwdWZmX2h1ZmZtYW4gewogIHNob3J0KiBjb3VudDsKICBzaG9ydCog c3ltYm9sOwp9OwpzdGF0aWMgaW50IHB1ZmZfZGVjb2RlKHN0cnVjdCBwdWZmX3N0YXRlKiBzLCBj b25zdCBzdHJ1Y3QgcHVmZl9odWZmbWFuKiBoKQp7CiAgaW50IGZpcnN0ID0gMDsKICBpbnQgaW5k ZXggPSAwOwogIGludCBiaXRidWYgPSBzLT5iaXRidWY7CiAgaW50IGxlZnQgPSBzLT5iaXRjbnQ7 CiAgaW50IGNvZGUgPSBmaXJzdCA9IGluZGV4ID0gMDsKICBpbnQgbGVuID0gMTsKICBzaG9ydCog bmV4dCA9IGgtPmNvdW50ICsgMTsKICB3aGlsZSAoMSkgewogICAgd2hpbGUgKGxlZnQtLSkgewog ICAgICBjb2RlIHw9IGJpdGJ1ZiAmIDE7CiAgICAgIGJpdGJ1ZiA+Pj0gMTsKICAgICAgaW50IGNv dW50ID0gKm5leHQrKzsKICAgICAgaWYgKGNvZGUgLSBjb3VudCA8IGZpcnN0KSB7CiAgICAgICAg cy0+Yml0YnVmID0gYml0YnVmOwogICAgICAgIHMtPmJpdGNudCA9IChzLT5iaXRjbnQgLSBsZW4p ICYgNzsKICAgICAgICByZXR1cm4gaC0+c3ltYm9sW2luZGV4ICsgKGNvZGUgLSBmaXJzdCldOwog ICAgICB9CiAgICAgIGluZGV4ICs9IGNvdW50OwogICAgICBmaXJzdCArPSBjb3VudDsKICAgICAg Zmlyc3QgPDw9IDE7CiAgICAgIGNvZGUgPDw9IDE7CiAgICAgIGxlbisrOwogICAgfQogICAgbGVm dCA9IChNQVhCSVRTICsgMSkgLSBsZW47CiAgICBpZiAobGVmdCA9PSAwKQogICAgICBicmVhazsK ICAgIGlmIChzLT5pbmNudCA9PSBzLT5pbmxlbikKICAgICAgbG9uZ2ptcChzLT5lbnYsIDEpOwog ICAgYml0YnVmID0gcy0+aW5bcy0+aW5jbnQrK107CiAgICBpZiAobGVmdCA+IDgpCiAgICAgIGxl ZnQgPSA4OwogIH0KICByZXR1cm4gLTEwOwp9CnN0YXRpYyBpbnQgcHVmZl9jb25zdHJ1Y3Qoc3Ry dWN0IHB1ZmZfaHVmZm1hbiogaCwgY29uc3Qgc2hvcnQqIGxlbmd0aCwgaW50IG4pCnsKICBpbnQg bGVuOwogIGZvciAobGVuID0gMDsgbGVuIDw9IE1BWEJJVFM7IGxlbisrKQogICAgaC0+Y291bnRb bGVuXSA9IDA7CiAgaW50IHN5bWJvbDsKICBmb3IgKHN5bWJvbCA9IDA7IHN5bWJvbCA8IG47IHN5 bWJvbCsrKQogICAgKGgtPmNvdW50W2xlbmd0aFtzeW1ib2xdXSkrKzsKICBpZiAoaC0+Y291bnRb MF0gPT0gbikKICAgIHJldHVybiAwOwogIGludCBsZWZ0ID0gMTsKICBmb3IgKGxlbiA9IDE7IGxl biA8PSBNQVhCSVRTOyBsZW4rKykgewogICAgbGVmdCA8PD0gMTsKICAgIGxlZnQgLT0gaC0+Y291 bnRbbGVuXTsKICAgIGlmIChsZWZ0IDwgMCkKICAgICAgcmV0dXJuIGxlZnQ7CiAgfQogIHNob3J0 IG9mZnNbTUFYQklUUyArIDFdOwogIG9mZnNbMV0gPSAwOwogIGZvciAobGVuID0gMTsgbGVuIDwg TUFYQklUUzsgbGVuKyspCiAgICBvZmZzW2xlbiArIDFdID0gb2Zmc1tsZW5dICsgaC0+Y291bnRb bGVuXTsKICBmb3IgKHN5bWJvbCA9IDA7IHN5bWJvbCA8IG47IHN5bWJvbCsrKQogICAgaWYgKGxl bmd0aFtzeW1ib2xdICE9IDApCiAgICAgIGgtPnN5bWJvbFtvZmZzW2xlbmd0aFtzeW1ib2xdXSsr XSA9IHN5bWJvbDsKICByZXR1cm4gbGVmdDsKfQpzdGF0aWMgaW50IHB1ZmZfY29kZXMoc3RydWN0 IHB1ZmZfc3RhdGUqIHMsIGNvbnN0IHN0cnVjdCBwdWZmX2h1ZmZtYW4qIGxlbmNvZGUsCiAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcHVmZl9odWZmbWFuKiBkaXN0Y29kZSkKewog IHN0YXRpYyBjb25zdCBzaG9ydCBsZW5zWzI5XSA9IHszLCAgNCwgIDUsICA2LCAgIDcsICAgOCwg ICA5LCAgIDEwLCAgMTEsIDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwg MTcsIDE5LCAyMywgIDI3LCAgMzEsICAzNSwgIDQzLCAgNTEsIDU5LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA2NywgODMsIDk5LCAxMTUsIDEzMSwgMTYzLCAxOTUsIDIyNywgMjU4 fTsKICBzdGF0aWMgY29uc3Qgc2hvcnQgbGV4dFsyOV0gPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMSwgMSwgMSwgMSwgMiwgMiwgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MiwgMywgMywgMywgMywgNCwgNCwgNCwgNCwgNSwgNSwgNSwgNSwgMH07CiAgc3RhdGljIGNvbnN0 IHNob3J0IGRpc3RzWzMwXSA9IHsKICAgICAgMSwgICAgMiwgICAgMywgICAgNCwgICAgNSwgICAg NywgICAgOSwgICAgMTMsICAgIDE3LCAgICAyNSwKICAgICAgMzMsICAgNDksICAgNjUsICAgOTcs ICAgMTI5LCAgMTkzLCAgMjU3LCAgMzg1LCAgIDUxMywgICA3NjksCiAgICAgIDEwMjUsIDE1Mzcs IDIwNDksIDMwNzMsIDQwOTcsIDYxNDUsIDgxOTMsIDEyMjg5LCAxNjM4NSwgMjQ1Nzd9OwogIHN0 YXRpYyBjb25zdCBzaG9ydCBkZXh0WzMwXSA9IHswLCAwLCAwLCAgMCwgIDEsICAxLCAgMiwgIDIs ICAzLCAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgNCwgNSwgIDUsICA2 LCAgNiwgIDcsICA3LCAgOCwgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDks IDksIDEwLCAxMCwgMTEsIDExLCAxMiwgMTIsIDEzLCAxM307CiAgaW50IHN5bWJvbDsKICBkbyB7 CiAgICBzeW1ib2wgPSBwdWZmX2RlY29kZShzLCBsZW5jb2RlKTsKICAgIGlmIChzeW1ib2wgPCAw KQogICAgICByZXR1cm4gc3ltYm9sOwogICAgaWYgKHN5bWJvbCA8IDI1NikgewogICAgICBpZiAo cy0+b3V0Y250ID09IHMtPm91dGxlbikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKHN5bWJv bCkKICAgICAgICBzLT5vdXRbcy0+b3V0Y250XSA9IHN5bWJvbDsKICAgICAgcy0+b3V0Y250Kys7 CiAgICB9IGVsc2UgaWYgKHN5bWJvbCA+IDI1NikgewogICAgICBzeW1ib2wgLT0gMjU3OwogICAg ICBpZiAoc3ltYm9sID49IDI5KQogICAgICAgIHJldHVybiAtMTA7CiAgICAgIGludCBsZW4gPSBs ZW5zW3N5bWJvbF0gKyBwdWZmX2JpdHMocywgbGV4dFtzeW1ib2xdKTsKICAgICAgc3ltYm9sID0g cHVmZl9kZWNvZGUocywgZGlzdGNvZGUpOwogICAgICBpZiAoc3ltYm9sIDwgMCkKICAgICAgICBy ZXR1cm4gc3ltYm9sOwogICAgICB1bnNpZ25lZCBkaXN0ID0gZGlzdHNbc3ltYm9sXSArIHB1ZmZf Yml0cyhzLCBkZXh0W3N5bWJvbF0pOwogICAgICBpZiAoZGlzdCA+IHMtPm91dGNudCkKICAgICAg ICByZXR1cm4gLTExOwogICAgICBpZiAocy0+b3V0Y250ICsgbGVuID4gcy0+b3V0bGVuKQogICAg ICAgIHJldHVybiAxOwogICAgICB3aGlsZSAobGVuLS0pIHsKICAgICAgICBpZiAoZGlzdCA8PSBz LT5vdXRjbnQgJiYgcy0+b3V0W3MtPm91dGNudCAtIGRpc3RdKQogICAgICAgICAgcy0+b3V0W3Mt Pm91dGNudF0gPSBzLT5vdXRbcy0+b3V0Y250IC0gZGlzdF07CiAgICAgICAgcy0+b3V0Y250Kys7 CiAgICAgIH0KICAgIH0KICB9IHdoaWxlIChzeW1ib2wgIT0gMjU2KTsKICByZXR1cm4gMDsKfQpz dGF0aWMgaW50IHB1ZmZfZml4ZWQoc3RydWN0IHB1ZmZfc3RhdGUqIHMpCnsKICBzdGF0aWMgaW50 IHZpcmdpbiA9IDE7CiAgc3RhdGljIHNob3J0IGxlbmNudFtNQVhCSVRTICsgMV0sIGxlbnN5bVtG SVhMQ09ERVNdOwogIHN0YXRpYyBzaG9ydCBkaXN0Y250W01BWEJJVFMgKyAxXSwgZGlzdHN5bVtN QVhEQ09ERVNdOwogIHN0YXRpYyBzdHJ1Y3QgcHVmZl9odWZmbWFuIGxlbmNvZGUsIGRpc3Rjb2Rl OwogIGlmICh2aXJnaW4pIHsKICAgIGxlbmNvZGUuY291bnQgPSBsZW5jbnQ7CiAgICBsZW5jb2Rl LnN5bWJvbCA9IGxlbnN5bTsKICAgIGRpc3Rjb2RlLmNvdW50ID0gZGlzdGNudDsKICAgIGRpc3Rj b2RlLnN5bWJvbCA9IGRpc3RzeW07CiAgICBzaG9ydCBsZW5ndGhzW0ZJWExDT0RFU107CiAgICBp bnQgc3ltYm9sOwogICAgZm9yIChzeW1ib2wgPSAwOyBzeW1ib2wgPCAxNDQ7IHN5bWJvbCsrKQog ICAgICBsZW5ndGhzW3N5bWJvbF0gPSA4OwogICAgZm9yICg7IHN5bWJvbCA8IDI1Njsgc3ltYm9s KyspCiAgICAgIGxlbmd0aHNbc3ltYm9sXSA9IDk7CiAgICBmb3IgKDsgc3ltYm9sIDwgMjgwOyBz eW1ib2wrKykKICAgICAgbGVuZ3Roc1tzeW1ib2xdID0gNzsKICAgIGZvciAoOyBzeW1ib2wgPCBG SVhMQ09ERVM7IHN5bWJvbCsrKQogICAgICBsZW5ndGhzW3N5bWJvbF0gPSA4OwogICAgcHVmZl9j b25zdHJ1Y3QoJmxlbmNvZGUsIGxlbmd0aHMsIEZJWExDT0RFUyk7CiAgICBmb3IgKHN5bWJvbCA9 IDA7IHN5bWJvbCA8IE1BWERDT0RFUzsgc3ltYm9sKyspCiAgICAgIGxlbmd0aHNbc3ltYm9sXSA9 IDU7CiAgICBwdWZmX2NvbnN0cnVjdCgmZGlzdGNvZGUsIGxlbmd0aHMsIE1BWERDT0RFUyk7CiAg ICB2aXJnaW4gPSAwOwogIH0KICByZXR1cm4gcHVmZl9jb2RlcyhzLCAmbGVuY29kZSwgJmRpc3Rj b2RlKTsKfQpzdGF0aWMgaW50IHB1ZmZfZHluYW1pYyhzdHJ1Y3QgcHVmZl9zdGF0ZSogcykKewog IHN0YXRpYyBjb25zdCBzaG9ydCBvcmRlclsxOV0gPSB7MTYsIDE3LCAxOCwgMCwgOCwgIDcsIDks ICA2LCAxMCwgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLCA0LCAgMTIs IDMsIDEzLCAyLCAxNCwgMSwgMTV9OwogIGludCBubGVuID0gcHVmZl9iaXRzKHMsIDUpICsgMjU3 OwogIGludCBuZGlzdCA9IHB1ZmZfYml0cyhzLCA1KSArIDE7CiAgaW50IG5jb2RlID0gcHVmZl9i aXRzKHMsIDQpICsgNDsKICBpZiAobmxlbiA+IE1BWExDT0RFUyB8fCBuZGlzdCA+IE1BWERDT0RF UykKICAgIHJldHVybiAtMzsKICBzaG9ydCBsZW5ndGhzW01BWENPREVTXTsKICBpbnQgaW5kZXg7 CiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbmNvZGU7IGluZGV4KyspCiAgICBsZW5ndGhzW29y ZGVyW2luZGV4XV0gPSBwdWZmX2JpdHMocywgMyk7CiAgZm9yICg7IGluZGV4IDwgMTk7IGluZGV4 KyspCiAgICBsZW5ndGhzW29yZGVyW2luZGV4XV0gPSAwOwogIHNob3J0IGxlbmNudFtNQVhCSVRT ICsgMV0sIGxlbnN5bVtNQVhMQ09ERVNdOwogIHN0cnVjdCBwdWZmX2h1ZmZtYW4gbGVuY29kZSA9 IHtsZW5jbnQsIGxlbnN5bX07CiAgaW50IGVyciA9IHB1ZmZfY29uc3RydWN0KCZsZW5jb2RlLCBs ZW5ndGhzLCAxOSk7CiAgaWYgKGVyciAhPSAwKQogICAgcmV0dXJuIC00OwogIGluZGV4ID0gMDsK ICB3aGlsZSAoaW5kZXggPCBubGVuICsgbmRpc3QpIHsKICAgIGludCBzeW1ib2w7CiAgICBpbnQg bGVuOwogICAgc3ltYm9sID0gcHVmZl9kZWNvZGUocywgJmxlbmNvZGUpOwogICAgaWYgKHN5bWJv bCA8IDApCiAgICAgIHJldHVybiBzeW1ib2w7CiAgICBpZiAoc3ltYm9sIDwgMTYpCiAgICAgIGxl bmd0aHNbaW5kZXgrK10gPSBzeW1ib2w7CiAgICBlbHNlIHsKICAgICAgbGVuID0gMDsKICAgICAg aWYgKHN5bWJvbCA9PSAxNikgewogICAgICAgIGlmIChpbmRleCA9PSAwKQogICAgICAgICAgcmV0 dXJuIC01OwogICAgICAgIGxlbiA9IGxlbmd0aHNbaW5kZXggLSAxXTsKICAgICAgICBzeW1ib2wg PSAzICsgcHVmZl9iaXRzKHMsIDIpOwogICAgICB9IGVsc2UgaWYgKHN5bWJvbCA9PSAxNykKICAg ICAgICBzeW1ib2wgPSAzICsgcHVmZl9iaXRzKHMsIDMpOwogICAgICBlbHNlCiAgICAgICAgc3lt Ym9sID0gMTEgKyBwdWZmX2JpdHMocywgNyk7CiAgICAgIGlmIChpbmRleCArIHN5bWJvbCA+IG5s ZW4gKyBuZGlzdCkKICAgICAgICByZXR1cm4gLTY7CiAgICAgIHdoaWxlIChzeW1ib2wtLSkKICAg ICAgICBsZW5ndGhzW2luZGV4KytdID0gbGVuOwogICAgfQogIH0KICBpZiAobGVuZ3Roc1syNTZd ID09IDApCiAgICByZXR1cm4gLTk7CiAgZXJyID0gcHVmZl9jb25zdHJ1Y3QoJmxlbmNvZGUsIGxl bmd0aHMsIG5sZW4pOwogIGlmIChlcnIgJiYgKGVyciA8IDAgfHwgbmxlbiAhPSBsZW5jb2RlLmNv dW50WzBdICsgbGVuY29kZS5jb3VudFsxXSkpCiAgICByZXR1cm4gLTc7CiAgc2hvcnQgZGlzdGNu dFtNQVhCSVRTICsgMV0sIGRpc3RzeW1bTUFYRENPREVTXTsKICBzdHJ1Y3QgcHVmZl9odWZmbWFu IGRpc3Rjb2RlID0ge2Rpc3RjbnQsIGRpc3RzeW19OwogIGVyciA9IHB1ZmZfY29uc3RydWN0KCZk aXN0Y29kZSwgbGVuZ3RocyArIG5sZW4sIG5kaXN0KTsKICBpZiAoZXJyICYmIChlcnIgPCAwIHx8 IG5kaXN0ICE9IGRpc3Rjb2RlLmNvdW50WzBdICsgZGlzdGNvZGUuY291bnRbMV0pKQogICAgcmV0 dXJuIC04OwogIHJldHVybiBwdWZmX2NvZGVzKHMsICZsZW5jb2RlLCAmZGlzdGNvZGUpOwp9CnN0 YXRpYyBpbnQgcHVmZih1bnNpZ25lZCBjaGFyKiBkZXN0LCB1bnNpZ25lZCBsb25nKiBkZXN0bGVu LAogICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogc291cmNlLCB1bnNpZ25lZCBs b25nIHNvdXJjZWxlbikKewogIHN0cnVjdCBwdWZmX3N0YXRlIHMgPSB7CiAgICAgIC5vdXQgPSBk ZXN0LAogICAgICAub3V0bGVuID0gKmRlc3RsZW4sCiAgICAgIC5vdXRjbnQgPSAwLAogICAgICAu aW4gPSBzb3VyY2UsCiAgICAgIC5pbmxlbiA9IHNvdXJjZWxlbiwKICAgICAgLmluY250ID0gMCwK ICAgICAgLmJpdGJ1ZiA9IDAsCiAgICAgIC5iaXRjbnQgPSAwLAogIH07CiAgaW50IGVycjsKICBp ZiAoc2V0am1wKHMuZW52KSAhPSAwKQogICAgZXJyID0gMjsKICBlbHNlIHsKICAgIGludCBsYXN0 OwogICAgZG8gewogICAgICBsYXN0ID0gcHVmZl9iaXRzKCZzLCAxKTsKICAgICAgaW50IHR5cGUg PSBwdWZmX2JpdHMoJnMsIDIpOwogICAgICBlcnIgPSB0eXBlID09IDAgPyBwdWZmX3N0b3JlZCgm cykKICAgICAgICAgICAgICAgICAgICAgIDogKHR5cGUgPT0gMSA/IHB1ZmZfZml4ZWQoJnMpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodHlwZSA9PSAyID8gcHVmZl9keW5h bWljKCZzKSA6IC0xKSk7CiAgICAgIGlmIChlcnIgIT0gMCkKICAgICAgICBicmVhazsKICAgIH0g d2hpbGUgKCFsYXN0KTsKICB9CiAgKmRlc3RsZW4gPSBzLm91dGNudDsKICByZXR1cm4gZXJyOwp9 CgovLyUgRU5EIENPREUgREVSSVZFRCBGUk9NIHB1ZmYue2MsaH0KCiNkZWZpbmUgWkxJQl9IRUFE RVJfV0lEVEggMgoKc3RhdGljIGludCBwdWZmX3psaWJfdG9fZmlsZShjb25zdCB1bnNpZ25lZCBj aGFyKiBzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBz b3VyY2VsZW4sIGludCBkZXN0X2ZkKQp7CiAgaWYgKHNvdXJjZWxlbiA8IFpMSUJfSEVBREVSX1dJ RFRIKQogICAgcmV0dXJuIDA7CiAgc291cmNlICs9IFpMSUJfSEVBREVSX1dJRFRIOwogIHNvdXJj ZWxlbiAtPSBaTElCX0hFQURFUl9XSURUSDsKICBjb25zdCB1bnNpZ25lZCBsb25nIG1heF9kZXN0 bGVuID0gMTMyIDw8IDIwOwogIHZvaWQqIHJldCA9IG1tYXAoMCwgbWF4X2Rlc3RsZW4sIFBST1Rf V1JJVEUgfCBQUk9UX1JFQUQsCiAgICAgICAgICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9B Tk9OLCAtMSwgMCk7CiAgaWYgKHJldCA9PSBNQVBfRkFJTEVEKQogICAgcmV0dXJuIC0xOwogIHVu c2lnbmVkIGNoYXIqIGRlc3QgPSAodW5zaWduZWQgY2hhciopcmV0OwogIHVuc2lnbmVkIGxvbmcg ZGVzdGxlbiA9IG1heF9kZXN0bGVuOwogIGludCBlcnIgPSBwdWZmKGRlc3QsICZkZXN0bGVuLCBz b3VyY2UsIHNvdXJjZWxlbik7CiAgaWYgKGVycikgewogICAgbXVubWFwKGRlc3QsIG1heF9kZXN0 bGVuKTsKICAgIGVycm5vID0gLWVycjsKICAgIHJldHVybiAtMTsKICB9CiAgaWYgKHdyaXRlKGRl c3RfZmQsIGRlc3QsIGRlc3RsZW4pICE9IChzc2l6ZV90KWRlc3RsZW4pIHsKICAgIG11bm1hcChk ZXN0LCBtYXhfZGVzdGxlbik7CiAgICByZXR1cm4gLTE7CiAgfQogIHJldHVybiBtdW5tYXAoZGVz dCwgbWF4X2Rlc3RsZW4pOwp9CgpzdGF0aWMgaW50IHNldHVwX2xvb3BfZGV2aWNlKHVuc2lnbmVk IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyKiBsb29wbmFtZSwgaW50KiBsb29wZmRfcCkKewogIGludCBlcnIgPSAw LCBsb29wZmQgPSAtMTsKICBpbnQgbWVtZmQgPSBzeXNjYWxsKF9fTlJfbWVtZmRfY3JlYXRlLCAi c3l6a2FsbGVyIiwgMCk7CiAgaWYgKG1lbWZkID09IC0xKSB7CiAgICBlcnIgPSBlcnJubzsKICAg IGdvdG8gZXJyb3I7CiAgfQogIGlmIChwdWZmX3psaWJfdG9fZmlsZShkYXRhLCBzaXplLCBtZW1m ZCkpIHsKICAgIGVyciA9IGVycm5vOwogICAgZ290byBlcnJvcl9jbG9zZV9tZW1mZDsKICB9CiAg bG9vcGZkID0gb3Blbihsb29wbmFtZSwgT19SRFdSKTsKICBpZiAobG9vcGZkID09IC0xKSB7CiAg ICBlcnIgPSBlcnJubzsKICAgIGdvdG8gZXJyb3JfY2xvc2VfbWVtZmQ7CiAgfQogIGlmIChpb2N0 bChsb29wZmQsIExPT1BfU0VUX0ZELCBtZW1mZCkpIHsKICAgIGlmIChlcnJubyAhPSBFQlVTWSkg ewogICAgICBlcnIgPSBlcnJubzsKICAgICAgZ290byBlcnJvcl9jbG9zZV9sb29wOwogICAgfQog ICAgaW9jdGwobG9vcGZkLCBMT09QX0NMUl9GRCwgMCk7CiAgICB1c2xlZXAoMTAwMCk7CiAgICBp ZiAoaW9jdGwobG9vcGZkLCBMT09QX1NFVF9GRCwgbWVtZmQpKSB7CiAgICAgIGVyciA9IGVycm5v OwogICAgICBnb3RvIGVycm9yX2Nsb3NlX2xvb3A7CiAgICB9CiAgfQogIGNsb3NlKG1lbWZkKTsK ICAqbG9vcGZkX3AgPSBsb29wZmQ7CiAgcmV0dXJuIDA7CgplcnJvcl9jbG9zZV9sb29wOgogIGNs b3NlKGxvb3BmZCk7CmVycm9yX2Nsb3NlX21lbWZkOgogIGNsb3NlKG1lbWZkKTsKZXJyb3I6CiAg ZXJybm8gPSBlcnI7CiAgcmV0dXJuIC0xOwp9CgpzdGF0aWMgdm9pZCByZXNldF9sb29wX2Rldmlj ZShjb25zdCBjaGFyKiBsb29wbmFtZSkKewogIGludCBsb29wZmQgPSBvcGVuKGxvb3BuYW1lLCBP X1JEV1IpOwogIGlmIChsb29wZmQgPT0gLTEpIHsKICAgIHJldHVybjsKICB9CiAgaWYgKGlvY3Rs KGxvb3BmZCwgTE9PUF9DTFJfRkQsIDApKSB7CiAgfQogIGNsb3NlKGxvb3BmZCk7Cn0KCnN0YXRp YyBsb25nIHN5el9tb3VudF9pbWFnZSh2b2xhdGlsZSBsb25nIGZzYXJnLCB2b2xhdGlsZSBsb25n IGRpciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxlIGxvbmcgZmxhZ3MsIHZv bGF0aWxlIGxvbmcgb3B0c2FyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxl IGxvbmcgY2hhbmdlX2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVu c2lnbmVkIGxvbmcgc2l6ZSwgdm9sYXRpbGUgbG9uZyBpbWFnZSkKewogIHVuc2lnbmVkIGNoYXIq IGRhdGEgPSAodW5zaWduZWQgY2hhciopaW1hZ2U7CiAgaW50IHJlcyA9IC0xLCBlcnIgPSAwLCBu ZWVkX2xvb3BfZGV2aWNlID0gISFzaXplOwogIGNoYXIqIG1vdW50X29wdHMgPSAoY2hhciopb3B0 c2FyZzsKICBjaGFyKiB0YXJnZXQgPSAoY2hhciopZGlyOwogIGNoYXIqIGZzID0gKGNoYXIqKWZz YXJnOwogIGNoYXIqIHNvdXJjZSA9IE5VTEw7CiAgY2hhciBsb29wbmFtZVs2NF07CiAgaWYgKG5l ZWRfbG9vcF9kZXZpY2UpIHsKICAgIGludCBsb29wZmQ7CiAgICBtZW1zZXQobG9vcG5hbWUsIDAs IHNpemVvZihsb29wbmFtZSkpOwogICAgc25wcmludGYobG9vcG5hbWUsIHNpemVvZihsb29wbmFt ZSksICIvZGV2L2xvb3AlbGx1IiwgcHJvY2lkKTsKICAgIGlmIChzZXR1cF9sb29wX2RldmljZShk YXRhLCBzaXplLCBsb29wbmFtZSwgJmxvb3BmZCkgPT0gLTEpCiAgICAgIHJldHVybiAtMTsKICAg IGNsb3NlKGxvb3BmZCk7CiAgICBzb3VyY2UgPSBsb29wbmFtZTsKICB9CiAgbWtkaXIodGFyZ2V0 LCAwNzc3KTsKICBjaGFyIG9wdHNbMjU2XTsKICBtZW1zZXQob3B0cywgMCwgc2l6ZW9mKG9wdHMp KTsKICBpZiAoc3RybGVuKG1vdW50X29wdHMpID4gKHNpemVvZihvcHRzKSAtIDMyKSkgewogIH0K ICBzdHJuY3B5KG9wdHMsIG1vdW50X29wdHMsIHNpemVvZihvcHRzKSAtIDMyKTsKICBpZiAoc3Ry Y21wKGZzLCAiaXNvOTY2MCIpID09IDApIHsKICAgIGZsYWdzIHw9IE1TX1JET05MWTsKICB9IGVs c2UgaWYgKHN0cm5jbXAoZnMsICJleHQiLCAzKSA9PSAwKSB7CiAgICBib29sIGhhc19yZW1vdW50 X3JvID0gZmFsc2U7CiAgICBjaGFyKiByZW1vdW50X3JvX3N0YXJ0ID0gc3Ryc3RyKG9wdHMsICJl cnJvcnM9cmVtb3VudC1ybyIpOwogICAgaWYgKHJlbW91bnRfcm9fc3RhcnQgIT0gTlVMTCkgewog ICAgICBjaGFyIGFmdGVyID0gKihyZW1vdW50X3JvX3N0YXJ0ICsgc3RybGVuKCJlcnJvcnM9cmVt b3VudC1ybyIpKTsKICAgICAgY2hhciBiZWZvcmUgPSByZW1vdW50X3JvX3N0YXJ0ID09IG9wdHMg PyAnXDAnIDogKihyZW1vdW50X3JvX3N0YXJ0IC0gMSk7CiAgICAgIGhhc19yZW1vdW50X3JvID0g KChiZWZvcmUgPT0gJ1wwJyB8fCBiZWZvcmUgPT0gJywnKSAmJgogICAgICAgICAgICAgICAgICAg ICAgICAoYWZ0ZXIgPT0gJ1wwJyB8fCBhZnRlciA9PSAnLCcpKTsKICAgIH0KICAgIGlmIChzdHJz dHIob3B0cywgImVycm9ycz1wYW5pYyIpIHx8ICFoYXNfcmVtb3VudF9ybykKICAgICAgc3RyY2F0 KG9wdHMsICIsZXJyb3JzPWNvbnRpbnVlIik7CiAgfSBlbHNlIGlmIChzdHJjbXAoZnMsICJ4ZnMi KSA9PSAwKSB7CiAgICBzdHJjYXQob3B0cywgIixub3V1aWQiKTsKICB9CiAgcmVzID0gbW91bnQo c291cmNlLCB0YXJnZXQsIGZzLCBmbGFncywgb3B0cyk7CiAgaWYgKHJlcyA9PSAtMSkgewogICAg ZXJyID0gZXJybm87CiAgICBnb3RvIGVycm9yX2NsZWFyX2xvb3A7CiAgfQogIHJlcyA9IG9wZW4o dGFyZ2V0LCBPX1JET05MWSB8IE9fRElSRUNUT1JZKTsKICBpZiAocmVzID09IC0xKSB7CiAgICBl cnIgPSBlcnJubzsKICAgIGdvdG8gZXJyb3JfY2xlYXJfbG9vcDsKICB9CiAgaWYgKGNoYW5nZV9k aXIpIHsKICAgIHJlcyA9IGNoZGlyKHRhcmdldCk7CiAgICBpZiAocmVzID09IC0xKSB7CiAgICAg IGVyciA9IGVycm5vOwogICAgfQogIH0KCmVycm9yX2NsZWFyX2xvb3A6CiAgaWYgKG5lZWRfbG9v cF9kZXZpY2UpCiAgICByZXNldF9sb29wX2RldmljZShsb29wbmFtZSk7CiAgZXJybm8gPSBlcnI7 CiAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4odm9pZCkKewogIHN5c2NhbGwoX19OUl9tbWFwLCAv KmFkZHI9Ki8weDFmZmZmMDAwdWwsIC8qbGVuPSovMHgxMDAwdWwsIC8qcHJvdD0qLzB1bCwKICAg ICAgICAgIC8qZmxhZ3M9TUFQX0ZJWEVEfE1BUF9BTk9OWU1PVVN8TUFQX1BSSVZBVEUqLyAweDMy dWwsIC8qZmQ9Ki8tMSwKICAgICAgICAgIC8qb2Zmc2V0PSovMHVsKTsKICBzeXNjYWxsKF9fTlJf bW1hcCwgLyphZGRyPSovMHgyMDAwMDAwMHVsLCAvKmxlbj0qLzB4MTAwMDAwMHVsLAogICAgICAg ICAgLypwcm90PVBST1RfV1JJVEV8UFJPVF9SRUFEfFBST1RfRVhFQyovIDd1bCwKICAgICAgICAg IC8qZmxhZ3M9TUFQX0ZJWEVEfE1BUF9BTk9OWU1PVVN8TUFQX1BSSVZBVEUqLyAweDMydWwsIC8q ZmQ9Ki8tMSwKICAgICAgICAgIC8qb2Zmc2V0PSovMHVsKTsKICBzeXNjYWxsKF9fTlJfbW1hcCwg LyphZGRyPSovMHgyMTAwMDAwMHVsLCAvKmxlbj0qLzB4MTAwMHVsLCAvKnByb3Q9Ki8wdWwsCiAg ICAgICAgICAvKmZsYWdzPU1BUF9GSVhFRHxNQVBfQU5PTllNT1VTfE1BUF9QUklWQVRFKi8gMHgz MnVsLCAvKmZkPSovLTEsCiAgICAgICAgICAvKm9mZnNldD0qLzB1bCk7CiAgaW5zdGFsbF9zZWd2 X2hhbmRsZXIoKTsKICBOT05GQUlMSU5HKG1lbWNweSgodm9pZCopMHgyMDAwMDhjMCwgImV4dDRc MDAwIiwgNSkpOwogIE5PTkZBSUxJTkcobWVtY3B5KCh2b2lkKikweDIwMDAwMTgwLCAiLi9idXNc MDAwIiwgNikpOwogIE5PTkZBSUxJTkcobWVtY3B5KCh2b2lkKikweDIwMDAwMzgwLCAidXNlcl94 YXR0ciIsIDEwKSk7CiAgTk9ORkFJTElORygqKHVpbnQ4X3QqKTB4MjAwMDAzOGEgPSAweDJjKTsK ICBOT05GQUlMSU5HKG1lbWNweSgodm9pZCopMHgyMDAwMDM4YiwgImpxZm10PXZmc29sZCIsIDEy KSk7CiAgTk9ORkFJTElORygqKHVpbnQ4X3QqKTB4MjAwMDAzOTcgPSAweDJjKTsKICBOT05GQUlM SU5HKG1lbWNweSgodm9pZCopMHgyMDAwMDM5OCwgInRlc3RfZHVtbXlfZW5jcnlwdGlvbiIsIDIx KSk7CiAgTk9ORkFJTElORygqKHVpbnQ4X3QqKTB4MjAwMDAzYWQgPSAweDJjKTsKICBOT05GQUlM SU5HKCoodWludDhfdCopMHgyMDAwMDNhZSA9IDApOwogIE5PTkZBSUxJTkcobWVtY3B5KAogICAg ICAodm9pZCopMHgyMDAwMGEwMCwKICAgICAgIlx4NzhceDljXHhlY1x4ZGJceGNmXHg4Zlx4MTNc eDU1XHgxY1x4MDBceGYwXHhlZlx4NGNceGI3XHg4Ylx4MDhceGI4XHgyYiIKICAgICAgIlx4ZTJc eDBmXHg3ZVx4YThceGFiXHg2OFx4ZGNceGY4XHg2M1x4OTdceDA1XHg1NFx4MGVceDFlXHhkNFx4 NjhceGUyXHgwMSIKICAgICAgIlx4MTNceDEzXHgzZFx4ZThceDcxXHhiM1x4YmJceDEwXHhhNFx4 YjBceDg2XHg1ZFx4MTNceDIwXHg0NFx4YzFceDE4XHgzYyIKICAgICAgIlx4MTlceDYzXHhlMlx4 ZGRceDc4XHhmNFx4NWZceGYwXHhhNFx4MTdceDYzXHgzY1x4OTlceDc4XHhkNVx4YmJceDIxXHgy MSIKICAgICAgIlx4ODZceDBiXHhlMFx4YTlceDY2XHhkYVx4MTlceGI2XHgyZFx4NmRceDYxXHg0 Ylx4YmJceDQ1XHhmYlx4ZjlceDI0XHhiMyIKICAgICAgIlx4ZmJceGRlXHhjY1x4OWJceGJlXHhm N1x4ZWRceGNjXHg2Ylx4ZGZceGNjXHhlYlx4MDRceDMwXHhiMlx4YTZceGIyXHgzZiIKICAgICAg Ilx4NDlceGM0XHhkNlx4ODhceGY4XHgyM1x4MjJceDI2XHhlYVx4ZDlceGU2XHgwMlx4NTNceGY1 XHg3Zlx4ZDdceGFlXHg5YyIKICAgICAgIlx4NWJceGI4XHg3ZVx4ZTVceGRjXHg0Mlx4MTJceGQ1 XHhlYVx4YmJceDdmXHgyN1x4YjVceDcyXHg1N1x4YWZceDljXHg1YiIKICAgICAgIlx4MjhceDhh XHgxNlx4ZmJceDZkXHhjOVx4MzNceGQzXHg2OVx4NDRceGZhXHg3OVx4MTJceGJiXHhkYlx4ZDRc eGJiXHg3MiIKICAgICAgIlx4ZTZceGVjXHhmMVx4ZjlceDRhXHg2NVx4ZTlceDU0XHg5ZVx4OWZc eDVkXHgzZFx4ZjFceGQxXHhlY1x4Y2FceDk5XHhiMyIKICAgICAgIlx4MmZceDFjXHgzYlx4MzFc eDdmXHg3NFx4ZTlceGU4XHhkMlx4YzlceGZkXHg4N1x4MGVceDFkXHgzY1x4MzBceGY3XHhmMiIK ICAgICAgIlx4NGJceGZiXHg1Zlx4ZWNceDRiXHg5Y1x4NTlceDliXHhhZVx4ZWVceGZhXHg2NFx4 NzlceGNmXHhjZVx4YjdceDNlXHhmOCIKICAgICAgIlx4ZmFceGVkXHhjM1x4NWZceDY2XHhlYlx4 YzZceDhiXHhmOFx4NWJceGUyXHhlOFx4OTNceGE5XHg2ZVx4MWJceDlmXHhhZSIKICAgICAgIlx4 NTZceGZiXHg1Y1x4ZGRceDcwXHg2ZFx4NmJceDQ4XHgyN1x4NjNceDQzXHg2Y1x4MDhceGViXHg1 Mlx4OGFceDg4XHhlYyIKICAgICAgIlx4NzBceDk1XHg2Ylx4ZmRceDdmXHgyMlx4NGFceGIxXHg3 Nlx4ZjBceDI2XHhlMlx4Y2RceGNmXHg4Nlx4ZGFceDM4XHg2MCIKICAgICAgIlx4YTBceGFhXHhk NVx4NmFceDc1XHg0Ylx4ZTdceGNkXHhlN1x4YWJceGMwXHhmZlx4NThceDEyXHhjZFx4NzlceDVk XHgxZSIKICAgICAgIlx4NDZceDQ1XHhmMVx4NDVceDlmXHg1ZFx4ZmZceDE2XHg0Ylx4ZWJceDIw XHhlMFx4ZDVceGMxXHgwZFx4M2ZceDg2XHhlZSIKICAgICAgIlx4ZjJceDZiXHhmNVx4MGJceGEw XHgyY1x4ZWVceDZiXHhmOVx4NTJceGRmXHgzMlx4MTZceDY5XHg1ZVx4YTZceGRjXHg3MiIKICAg ICAgIlx4N2RceGRiXHg0Zlx4NTNceDExXHhmMVx4ZmVceGY5XHg3Zlx4YmVceGNkXHg5Nlx4MThc eGNjXHg3ZFx4MDhceDAwXHg4MCIKICAgICAgIlx4MjZceDNmXHg2Nlx4ZTNceDlmXHhlN1x4ZGJc eDhkXHhmZlx4ZDJceDc4XHhhOFx4YTFceGRjXHg3ZFx4ZjlceGRjXHhkMCIKICAgICAgIlx4NjRc eDQ0XHhkY1x4MWZceDExXHhkYlx4MjNceGUyXHg4MVx4ODhceGQ4XHgxMVx4MTFceDBmXHg0Nlx4 ZDRceGNhXHgzZSIKICAgICAgIlx4MWNceDExXHg4Zlx4YWNceGIzXHhmZVx4ZDZceDQ5XHg5Mlx4 OWJceGM3XHgzZlx4ZTlceGE1XHg5ZVx4MDJceGJiXHg0ZCIKICAgICAgIlx4ZDlceGY4XHhlZlx4 OTVceDdjXHg2ZVx4YWJceDc5XHhmY1x4NTdceDhjXHhmZVx4NjJceGIyXHg5NFx4ZTdceGI2XHhk NSIKICAgICAgIlx4ZTJceDJmXHgyN1x4NDdceDhlXHg1NVx4OTZceGY2XHhlNVx4ZWZceGM5XHg3 NFx4OTRceDM3XHg2NVx4ZjlceGI5XHgyZSIKICAgICAgIlx4NzVceGZjXHhmNFx4YzZceGVmXHg1 Zlx4NzVceGRhXHhkNlx4MzhceGZlXHhjYlx4OTZceGFjXHhmZVx4NjJceDJjXHg5OCIKICAgICAg Ilx4YjdceGUzXHhkMlx4ZDhceGE2XHhlNlx4N2RceDE2XHhlN1x4NTdceGU3XHhlZlx4MjRceGU2 XHg0Nlx4OTdceDJmXHg0NCIKICAgICAgIlx4ZWNceDFhXHg2Ylx4MTdceDdmXHg3Mlx4NjNceDI2 XHgyMFx4ODlceDg4XHg5ZFx4MTFceGIxXHhhYlx4YzdceDNhXHg4ZSIKICAgICAgIlx4M2RceGZi XHhmZFx4OWVceDRlXHhkYlx4NmVceDFkXHg3Zlx4MTdceDdkXHg5OFx4NjdceGFhXHg3ZVx4MTdc eGYxXHg0YyIKICAgICAgIlx4ZmRceGY4XHg5Zlx4OGZceDk2XHhmOFx4MGJceDQ5XHhmN1x4Zjlc eGM5XHhkOVx4N2JceGEyXHhiMlx4YjRceDZmXHhiNiIKICAgICAgIlx4MzhceDJiXHg2ZVx4ZjZc eGViXHg2Zlx4MTdceGRmXHhlOVx4NTRceGZmXHgxZFx4YzVceGRmXHgwN1x4ZDlceGYxXHhiZiIK ICAgICAgIlx4YjdceGVkXHhmOVx4N2ZceDIzXHhmZVx4YzlceGE0XHg3MVx4YmVceDc2XHg2NVx4 ZmRceDc1XHg1Y1x4ZmNceGYzXHg4YiIKICAgICAgIlx4OGVceGQ3XHgzNFx4YmRceDllXHhmZlx4 ZTNceGM5XHg3Ylx4YjVceGY0XHg3OFx4YmVceGVlXHhmNFx4ZmNceGVhXHhlYSIKICAgICAgIlx4 YTlceGI5XHg4OFx4ZjFceGU0XHg3MFx4YmRceGQxXHg4ZFx4ZWJceGY3XHhhZlx4ZWRceDViXHhl NFx4OGJceGYyXHg1OSIKICAgICAgIlx4ZmNceGQzXHg3Ylx4ZGJceGY3XHhmZlx4ZWRceGIxXHhm Nlx4NGVceGVjXHg4ZVx4ODhceGVjXHgyNFx4N2VceDM0XHgyMiIKICAgICAgIlx4MWVceDhiXHg4 OFx4YzdceGYzXHhiNlx4M2ZceDExXHgxMVx4NGZceDQ2XHhjNFx4ZGVceDJlXHhmMVx4ZmZceGYy XHhmYSIKICAgICAgIlx4NTNceDFmXHhmNlx4MWVceGZmXHg2MFx4NjVceGYxXHgyZlx4YWVceGVi XHhmOFx4YWZceDI1XHhjNlx4YTNceDc1XHg0ZCIKICAgICAgIlx4ZmJceDQ0XHhlOVx4ZjhceGNm XHgzZlx4MzRceDU1XHgzYVx4NzlceDUzXHhmY1x4ZDdceGJiXHgxZlx4ZmZceDgzXHhiNSIKICAg ICAgIlx4ZDRceDc0XHhiZVx4ZTZceDc2XHgzZVx4ZmZceDZlXHhhN1x4NWRceGJkXHg5ZFx4Y2Rc eDAwXHgwMFx4MDBceGYwXHhkZiIKICAgICAgIlx4OTNceDQ2XHhjNFx4ZDZceDQ4XHhkMlx4OTlc eDFiXHhlOVx4MzRceDlkXHg5OVx4YTlceGZmXHg1ZVx4N2VceDQ3XHg0NCIKICAgICAgIlx4NWFc eDU5XHg1ZVx4NTlceDdkXHhlZVx4YzhceGYyXHhjN1x4MjdceDE3XHhlYlx4Y2ZceDA4XHg0Y1x4 NDZceDM5XHgyZCIKICAgICAgIlx4ZWVceDc0XHg0ZFx4MzRceGRjXHgwZlx4OWRceGNiXHgyZlx4 ZWJceGViXHhmOVx4MGJceDExXHg1MVx4ZmZceDY5XHg0MSIKICAgICAgIlx4YjFceGZkXHg0MFx4 N2VceGRmXHhmOFx4OWJceGQyXHhlNlx4NWFceDdlXHg2Nlx4NjFceGI5XHhiMlx4MzhceGVjXHhl MCIKICAgICAgIlx4NjFceGM0XHg2ZFx4ZTlceGQwXHhmZlx4MzNceDdmXHg5NVx4ODZceGRkXHgz YVx4NjBceGUwXHgzY1x4YWZceDA1XHhhMyIKICAgICAgIlx4NGJceGZmXHg4N1x4ZDFceGE1XHhm Zlx4YzNceGU4XHhkMlx4ZmZceDYxXHg3NFx4YjVceGU5XHhmZlx4OWJceDg3XHhkMSIKICAgICAg Ilx4MGVceDYwXHhlM1x4YjVceGZiXHhmZVx4ZmZceDc0XHgwOFx4ZWRceDAwXHgzNlx4NWVceDRi XHhmZlx4MzdceGVkXHgwNyIKICAgICAgIlx4MjNceGM0XHhmNVx4M2ZceDhjXHgyZVx4ZmRceDFm XHg0Nlx4OTdceGZlXHgwZlx4MjNceDY5XHg2NVx4NzNceGRjXHhmYSIKICAgICAgIlx4MjFceGY5 XHhhZVx4ODlceGUyXHg5NVx4N2FceGRjXHhiZFx4NWJceDYyXHhlY1x4NzRceGZkXHhhNVx4ZmJc eGZmXHhjYSIKICAgICAgIlx4MWJceDkwXHg4OFx4ZjJceDVkXHhkMVx4OGNceDgxXHgyNVx4MjJc eGJkXHgyYlx4OWFceDIxXHgzMVx4YTBceGM0XHgxMCIKICAgICAgIlx4M2ZceDk0XHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmYVx4ZThceGRmXHgw MCIKICAgICAgIlx4MDBceDAwXHhmZlx4ZmZceGM3XHhkZVx4ZGRceGRlIiwKICAgICAgMTEwNikp OwogIE5PTkZBSUxJTkcoc3l6X21vdW50X2ltYWdlKC8qZnM9Ki8weDIwMDAwOGMwLCAvKmRpcj0q LzB4MjAwMDAxODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypmbGFncz1NU19JX1ZF UlNJT058TVNfRElSU1lOQyovIDB4ODAwMDgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qb3B0cz0qLzB4MjAwMDAzODAsIC8qY2hkaXI9Ki8zLCAvKnNpemU9Ki8weDQ1MiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKmltZz0qLzB4MjAwMDBhMDApKTsKICBOT05GQUlMSU5H KG1lbWNweSgodm9pZCopMHgyMDAwMTA0MCwgIi4vZmlsZTJcMDAwIiwgOCkpOwogIE5PTkZBSUxJ Tkcoc3l6X21vdW50X2ltYWdlKC8qZnM9Ki8wLCAvKmRpcj0qLzB4MjAwMDEwNDAsIC8qZmxhZ3M9 Ki8wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qb3B0cz0qLzAsIC8qY2hkaXI9Ki8w LCAvKnNpemU9Ki8wLCAvKmltZz0qLzApKTsKICBOT05GQUlMSU5HKG1lbWNweSgodm9pZCopMHgy MDAwMDA0MCwgIi4vZmlsZTBcMDAwIiwgOCkpOwogIE5PTkZBSUxJTkcobWVtY3B5KCh2b2lkKikw eDIwMDAwMDAwLCAib3ZlcmxheVwwMDAiLCA4KSk7CiAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQq KTB4MjAwMDAxNDAsICJ3b3JrZGlyIiwgNykpOwogIE5PTkZBSUxJTkcoKih1aW50OF90KikweDIw MDAwMTQ3ID0gMHgzZCk7CiAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAxNDgsICIu L2ZpbGUwIiwgNykpOwogIE5PTkZBSUxJTkcoKih1aW50OF90KikweDIwMDAwMTRmID0gMHgyYyk7 CiAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAxNTAsICJsb3dlcmRpciIsIDgpKTsK ICBOT05GQUlMSU5HKCoodWludDhfdCopMHgyMDAwMDE1OCA9IDB4M2QpOwogIE5PTkZBSUxJTkco bWVtc2V0KCh2b2lkKikweDIwMDAwMTU5LCA0NiwgMSkpOwogIE5PTkZBSUxJTkcoKih1aW50OF90 KikweDIwMDAwMTVhID0gMHgyYyk7CiAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAx NWIsICJ1cHBlcmRpciIsIDgpKTsKICBOT05GQUlMSU5HKCoodWludDhfdCopMHgyMDAwMDE2MyA9 IDB4M2QpOwogIE5PTkZBSUxJTkcobWVtY3B5KCh2b2lkKikweDIwMDAwMTY0LCAiLi9maWxlMiIs IDcpKTsKICBOT05GQUlMSU5HKCoodWludDhfdCopMHgyMDAwMDE2YiA9IDB4MmMpOwogIE5PTkZB SUxJTkcoKih1aW50OF90KikweDIwMDAwMTZjID0gMHgyYyk7CiAgc3lzY2FsbChfX05SX21vdW50 LCAvKnNyYz0qLzB1bCwgLypkc3Q9Ki8weDIwMDAwMDQwdWwsIC8qdHlwZT0qLzB4MjAwMDAwMDB1 bCwKICAgICAgICAgIC8qZmxhZ3M9Ki8wdWwsIC8qb3B0cz0qLzB4MjAwMDAxNDB1bCk7CiAgcmV0 dXJuIDA7Cn0K ------=ALIBOUNDARY_40248_7f0bd7248700_663c6e2e_2765--