Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHjhZ-0003z5-Kn for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 11:00:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pHjhY-0002Sx-Ev for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 11:00:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHjhX-0002So-U6 for pgsql-hackers@lists.postgresql.org; Tue, 17 Jan 2023 11:00:24 +0000 Received: from esa1.fujitsucc.c3s2.iphmx.com ([68.232.152.245]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHjhU-0002zM-Ka for pgsql-hackers@postgresql.org; Tue, 17 Jan 2023 11:00:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1673953221; x=1705489221; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=dNSuZ6B5h1uE5Y/saijRoYHR/fdCPXRcxg/FZObLWxQ=; b=M1sGpyTKenGlRUQYLem2nl4IvR8ruR8AgDKj08TfNKRmenaAzNJ9WfkC ogt+TyfCa5NReA3LXbU4hqrJgLTsfCVSIrQQlp/kfK3DT6d9IHf7inRFs xl5XZw1gQkjQpLoaCm0a/uyxhj7xRp78Sb+zrRH1wwxrgRpRZAX+wCrXw 16UGHuKwESVhhchXQ5gms2B5NzQe2JUBF82BljgbkZQPk+poMwVll+g4Z 6WIBBI6NCAkkRHnZ7mUWn56JUwxr7tw0ZyI3kNZflLYjNlq4rs3K8vCd0 wQOtWqJ6Os7qUVlmFW4GWAznSzvN0ueyRnQiCjX0rf2KvCMZCBBAjsTcm g==; X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="82912721" X-IronPort-AV: E=Sophos;i="5.97,222,1669042800"; d="scan'208,223";a="82912721" Received: from mail-tycjpn01lp2175.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.175]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2023 20:00:16 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EC9EbqD2paLvRE4SsFGbvCXzP/ZQISeZlbR1VQZgfEGTuNJ8eEU5U0E93S0c0xvL8EMg/ZKHQWUUDRUkuKufe9NLPQUOr69Qr116ygFepxW4fru30o2aTjuyfFseVBquQMZxPdE3vWWZ1h5SFZvSyG+I83tvyvSgMKxRYaAK7GbpUNdrJUxvE6TU9vJNLFOrOgUQBfQw2ZFE5ucEQ5uTHMWa+Wt58JUp5Dcx0Ef0CB80Mj5rCNJ4zp0tWDWbvcEP/UW8AlaOReu4y+muq20sCUFIC5knZ4bgBvQulga/OWM2QSi/MNe0dy19eXXNJzeWUMCU4yU8GnkT+5sD3aH/Mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Dlv2lVxt9uXgEG4VZXa/sDJJwBNSyODjWFlfIqNNnNo=; b=JCTcGn+swHuaX+MyBsjihK6ruwg5Y9li3fcraoC+pS4s0Ms3wo/sfY82gFrJh2Gq6GCKjqhDgXWqkyQxHMbUAMEfxyncfdVAMTVneNISzA2KreNAb1jO37sj99Hy3FpbJf3GLZnHUdEomfm4Jkgi18h27kK9g5C2tPf+ZTNsyfWGl4ZZ8w+3VHMM7s5lh+UIyUJR5XHoCbhUi9ZWqYGcrua92UfRAOnlfj1IbdpJAxD1fy4g6su08EntrJZIjX6AVF5rlV7JoD3Lh7iw0lEYJ5q0ylDKfjWswYAzskaxTAhqQhdnjm2pNXTzu+/hqoWYx+Q8MTlzHWkrIeCqBa7fdg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com (2603:1096:400:15f::9) by TYAPR01MB5900.jpnprd01.prod.outlook.com (2603:1096:404:8058::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Tue, 17 Jan 2023 11:00:12 +0000 Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a]) by TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a%9]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 11:00:12 +0000 From: "Takamichi Osumi (Fujitsu)" To: 'vignesh C' CC: Kyotaro Horiguchi , "Hayato Kuroda (Fujitsu)" , "shveta.malik@gmail.com" , "dilipbalaut@gmail.com" , "amit.kapila16@gmail.com" , "euler@eulerto.com" , "m.melihmutlu@gmail.com" , "andres@anarazel.de" , "marcos@f10.com.br" , "pgsql-hackers@postgresql.org" , "smithpb2250@gmail.com" Subject: RE: Time delayed LR (WAS Re: logical replication restrictions) Thread-Topic: Time delayed LR (WAS Re: logical replication restrictions) Thread-Index: AQHY9/SeVGNfJ+eMH0OkVO9Bch6SIa49/p8AgAAf6ACAABrAgIAALyYAgAEoiICAGrgLgIAGnftQgAEcg4CACAUGgIAAVUUAgADhA4CAAJ9SgIAA6ooAgACaBYCAAPtugIAAI30AgAsiVvCAAjbLEIAEQWWAgAGfSACACtcCAIALd3wAgAFMWoCAAC9FAIAA74IAgADRMqCAAoxsgIAFAcUw Date: Tue, 17 Jan 2023 11:00:11 +0000 Message-ID: References: <20230112.120338.534662300633460797.horikyota.ntt@gmail.com> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2023-01-17T11:00:09Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=1d1b4be4-fea5-4409-ab33-75bc9207c9c2; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYCPR01MB8373:EE_|TYAPR01MB5900:EE_ x-ms-office365-filtering-correlation-id: 4226bfbb-2424-4b6c-e5c0-08daf87a0161 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sRpvmqkLdAjxl0CGLRk0vCT1gw3TsqnbcB/19xG/EJVfzblTwPbMN4WEtyWsCFrYWHquXhiYqh/aAI6ObIwBO9dFlkmTBHDEJJ3OL5G/fE/+W+haY37ANrqPkSji8UzWNqm7ZRU7y6csaZTDUTSzDyk28gZP03XeLGqVJz1nUS7VFSHfQTrGGU8WSggAEB++LuJ+hvUX259TWl2F5Ey79n+s+8imYCYpWWYOCFNlFZJS2r+F/4oUgkrZhL4aa8L+2kf6yPjky+vX8K8D8kIz9LeOVgmkbt9fG2s/s6NoQUX6+cSCGP03NMTvxviUOIxRxtLGEsuBPb6yZlCZXdxW4c13MvBdqE1BQ8cJbzHe6B6uAobjK/wc6b31plPpWmVaqDliOUkXBSyC2lEDpQrSZd3DbkgwusECT+boY8vju9FnqODDsPrqAf/OlTsN/1Zb3G2cgzZRH2ZSbCfnso0hePBL2J/n2Kh8buQmmY0e48VI0leuc0YhexbNg6XBdmWoTC/EgKdvZyr6bQjowZwUwvHO426A0OpbVQc20tbju2a2uuV+fjJCXNLXtjJ/xzLNjmMtTgFwzEQ1xiiSptRcb4NWeQDwk308DFpXCJhtwiGhJidj/tBL0nh7F8o58NSWSUIKLeBnv8vnLey3nArJEy59/wi0uNNIBg/O8uwWEnn1QkrL76h7eQKcJjnQagSqmLxyi1Of5psBYEVgwYuEreyRFOXpahIluoUTUXZqHPJEh9eeTzULOzf5pB2/yUz+5cd5XlAE/Kmw1N42P83jGg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB8373.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(396003)(376002)(366004)(346002)(136003)(451199015)(1590799012)(38070700005)(85182001)(55016003)(33656002)(86362001)(7696005)(966005)(45080400002)(71200400001)(54906003)(316002)(5660300002)(52536014)(7416002)(8936002)(2906002)(76116006)(66946007)(66446008)(8676002)(4326008)(41300700001)(6916009)(66556008)(66476007)(64756008)(82960400001)(99936003)(38100700002)(122000001)(6506007)(9686003)(83380400001)(186003)(26005)(478600001)(53546011)(1580799009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?VUlVZHJyVjRERUFnTTU1ZlJCcVVSVFlnK0pMeGlqZkJwejk4cmhtdm9D?= =?iso-2022-jp?B?OUxuVkdyUXdrdXJ0YVFSd1JsYjRoV05YbFBxRTVZdThweEhqSmpBK1d1?= =?iso-2022-jp?B?MUR1NVFQekZVcFROUkpCYnRkQlJUTGg3dEh2bVpqOGtwcVdSc3FKM1du?= =?iso-2022-jp?B?c2tFYU5XY1dYaEN2NUwvejAzNENEMHh5dFNUaUVJZG5kV3JLL1dZT1h3?= =?iso-2022-jp?B?T3g3QjBDM0pHN21OWWlHNkE3YkxUdVlsUm9qazV2b1d6UkdiR0l5ZDJ2?= =?iso-2022-jp?B?UENVZ05nTXlSOEVkZUlrVkt6YkVWTERwZk00QVg0cW1KVXJ4d2hKY1dC?= =?iso-2022-jp?B?MGpUTWtmT2RrSk1OOHVVUWo1S0RZTmF4MzJXcUJpdDloWkJqSVdBMEFQ?= =?iso-2022-jp?B?WlA0eHBGK3dNREhibE8vRjRvM3djWW9JcitQeUhFeDlEMkdmejJrT0dD?= =?iso-2022-jp?B?S1pyUnREbFM2aSs3bU9YdmRVd3pFZVNmTUl2SUhRZWRUV3YxQXIraVcx?= =?iso-2022-jp?B?SElhMzR5eGVnMWRHcGFTaE9WRDg5di94Q1YyMGI1Yk5aRWdVUHdCSVpI?= =?iso-2022-jp?B?emtISnlLOWZBZmRGRWVSWTREMDlUQzYwUjdOME5oNzVOZmVmcUlOUW1o?= =?iso-2022-jp?B?cVdwVnVIVzhJRzl3SnpnQW54bzBBRTUvcitsdDBMMkhURDByQnpQUEVl?= =?iso-2022-jp?B?ZWp1NEtDWWhiUFRrUU5uOWhrSE1kTjAzN2s0a0wyLzJjdnFab0xtRG81?= =?iso-2022-jp?B?QmF2QUkrbDQ2eUl0Yk9zTWJLZlJ0dUF5aTBERlk0SUZFTzNFbTc0WGdD?= =?iso-2022-jp?B?YktQbTFYTFhRZWhVY0RYVUlnM0ZoVjNVNlNmQ0JDYW0ySnRRY1ZzTGRX?= =?iso-2022-jp?B?RmVCd0U2c3VrMkJPTmtQOWpOcWFzeU5QWXZxRWttcmhQWEYwVVRLRjJ1?= =?iso-2022-jp?B?R3hLaFZwZURPTWd6Zkk4MGIzaFJIUUZuMVdYUnllVzA0RzdvWWpjUG9E?= =?iso-2022-jp?B?VE1adGpvNXdLRVZ0Mi9obTVuTC9WeVYvVWRHeU9zd0NITXI0SFRQN1lQ?= =?iso-2022-jp?B?OEdJU3VqZGV3a0RwUkNpNDFkUFZYbml5RkluYXY5d090MzVKNURBT2pW?= =?iso-2022-jp?B?d2NwWWcrb253M3pNa1U2Q3RMb0hMbDlUS0thWVh0bTVWRW5zZmNQOTJX?= =?iso-2022-jp?B?ak1sNUlXcXpWVjE5YlVmTDlWdEwyVDFRNW05VmkwM0FDcnR2TlhTZzlm?= =?iso-2022-jp?B?R2FHL1NodENlZ0FLUVo0SmFlVXdFaEYwd1ZCKzNqaGh0Vk1JMjNIbGcx?= =?iso-2022-jp?B?SmhYQmFzWmo5NFdzUzRFQlE3a3RSVG1VN1hjKzVwSTB5L29rY3JrWENQ?= =?iso-2022-jp?B?cjdVeW02OGlaRHBWZ3RjU0hFTEJxZGVmNWFnRzFCSmMyazBJSXM2TmEr?= =?iso-2022-jp?B?NE5zUEpqQmxpTUIwREtHNnh2eDR4Tnd4TTZSVGd5SE1YYS9VaVZYWE13?= =?iso-2022-jp?B?NHNTRk1ra2RORXRmRnBNZWxvY2NWWEwrWE1wQVBYTmpEWjJXLzBHMC8v?= =?iso-2022-jp?B?UTNrK2NuUVc0SVhjRVVQbXpZa0VCb0tBLzlPY0NPOVNsR3hWWkdRSXlP?= =?iso-2022-jp?B?MWVWODJmcUxCcFBlUDJ1R1B1YjVPNncvQU1Qa25JM1BwQkltQ3hiQjBa?= =?iso-2022-jp?B?Mnk5cTcyQ0ljRzhxYlh1S3dOQi9aaUM5dVg4ZmhCU2xsUTVxYXByZTh5?= =?iso-2022-jp?B?MkVnQjV1Yi9Ca21MMjdUUTlFMXBUWjRKU2xGdXRHQ00yT1I5WFdTT0tI?= =?iso-2022-jp?B?ZWN0aVJBK2pTemZuczIvbUY3ZjY3bnZDTzNHR2tNTHVzUzRmYXVXd3Ev?= =?iso-2022-jp?B?K25UTXovdU9FNENyQ1I4WDVkTnFRZ2tVODJ5SEFjZkdFRWdnbVdoNDlT?= =?iso-2022-jp?B?NmNiQStIOS92RlFtS1VOQmV0elhHOVJJeWV6VlorL202M0x3d3hCV2ph?= =?iso-2022-jp?B?eDNUT21YcWxyREc1K21mdWRjdHRsS0xrSWdyYXNDNW5ZZmViY2VtY1pX?= =?iso-2022-jp?B?MC9IQTFhZEhYbFlrc1RVZkJ1YWFWQlpVMWFadkx5SXlFRDBCbFNnVE5s?= =?iso-2022-jp?B?QldPem4zdG5qa1JvV2lvWUNNN0I1K3FhOTBwMzJEVkJCUDB4K3RpM2RL?= =?iso-2022-jp?B?dSt0cTdLdU5HSVdxOG5rZVl2SnRsN1luQk1CMGhmRG9wb3JUTkpUcmE3?= =?iso-2022-jp?B?blhkSnRUSEM1UlFhdlJJNjhEdUU2dmJ4Qzl1RzhIY3JqRDI4NXB0QmRv?= =?iso-2022-jp?B?YUdsNVUxL0cwL1ZNK2U2c2pZNC9KZS8vUHc9PQ==?= Content-Type: multipart/mixed; boundary="_002_TYCPR01MB8373F3E780D5BB60E441ECF3EDC69TYCPR01MB8373jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DEh+7JMomYYqTwQ+yi0x7BmTRdHxQLZmyG59OwrtG9McHoKdAQSFDVEqqaKjTDaV/i9+v+fJUmiMI/xV9VNnD7haQDmXoHhbx6viUdb+f+paF3uovcyZr1jTLFits0RKKfCo5ende2uc5UqgOnRKxTXGkZ2faWQksVs613xbMBa7y0lk3NPJJdWTOl4ctZJwe2dSGhrl03jY1l2VboW8R6WhBG4urrJax0ZhnqN2OO3J5kCM9ZK1F1LwJWT+fKVTZLZDvSlahRu7RzYhRhah5vmunDde0VsvmEWk4HEkV7MYfEROiW7UCN+NtKB3RcaKbNhCXRvhElKxR7FtfZy6rGjtBjHsqo+UqPOW18tWZq5gUyaZ49snPilrUr1owQv+wD3A/g6IK9/jyaTH6HXkSznyzBR9BnISaoPNNX7AGyKuAOm6Gawo2ULMq9/ufZrdeaBNCuH1kT7S6tvm8MCDrauLr5EKA357Adf0dOwu8gdwy0do+WUgSXSv+DhwQi1PTJsx0zKUSmqeneIFM3V2juBsVQs7j5xuXAhm2nWt4i0CdVBq/hAuIg0vW9W654kYGLmbGUJrg7HBrUn6vTqGs2aV7PB4JXAC8bvi0mw2lCdCt7Nd5RxwP+9aBwK9QRrhFijpeRJqgkRHdTYrIqDEa1OAQxbWMTJLm5BS2fgqSLxwbEPqw+Lb7AWrW0eA/d2oTMO2RoZKq9N03AW58O/ihSdNCmoggtTXCx9EQumoWzS6GCLy2C0mM8VEojUAF/c0lFIBqpHsxepeo0onEl+H42RGyvRo9OhCsegts9i8yvC7EP/jDZsCfgpxRwMyY3v/T7To1ZKjt3Z7qcnCF2xsH5YJH5Sz+O9xdjcfPBPfLjSilr8iY8lQU3vbXXjNoR2n5D3hqP+7Th3HchMCZzGH4Q== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB8373.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4226bfbb-2424-4b6c-e5c0-08daf87a0161 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 11:00:11.8613 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Wcltfj0gC8pBOfFex1xQrWJVYEeHBCyXHT5XQnc69ONBco0pykoivPoL8wR9I3+/fjBUbb+weuHr7fwWMsDQZWdf67alF7Qcad0HaYDbeoU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5900 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYCPR01MB8373F3E780D5BB60E441ECF3EDC69TYCPR01MB8373jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Hi, On Saturday, January 14, 2023 3:27 PM vignesh C wrote= : > 1) Since the min_apply_delay =3D 3, but you have specified 2s, there migh= t be a > possibility that it can log delay as 1000ms due to pub/sub/network delay = and > the test can fail randomly, If we cannot ensure this log file value, > check_apply_delay_time verification alone should be sufficient. > +is($result, qq(5|1|5), 'check if the new rows were applied to > +subscriber'); > + > +check_apply_delay_log("logical replication apply delay", "2000"); You are right. Removed the left-time check of the 1st call of check_apply_d= elay_log().=20 > 2) I'm not sure if this will add any extra coverage as the altering value= of > min_apply_delay is already tested in the regression, if so this test can = be > removed: > +# Test ALTER SUBSCRIPTION. Delay 86460 seconds (1 day 1 minute). > +$node_subscriber->safe_psql('postgres', > + "ALTER SUBSCRIPTION tap_sub SET (min_apply_delay =3D > 86460000)" > +); > + > +# New row to trigger apply delay. > +$node_publisher->safe_psql('postgres', > + "INSERT INTO test_tab VALUES (0, 'foobar')"); > + > +check_apply_delay_log("logical replication apply delay", "80000000"); While addressing this point, I've noticed that there is a behavior difference between physical replication's recovery_min_apply_delay and this feature when stopping the replication during delays. At present, in the latter case, the apply worker exits without applying the suspended transaction after ALTER SUBSCRIPTION DISABLE command for the subscription. Meanwhile, there is no "disabling" command for physical replication, but I checked the behavior about what happens for promoting a secondary during the delay of recovery_min_apply_delay for physical replication as on= e example. The transaction has become visible even in the promoting in the middle of d= elay. I'm not sure if I should make the time-delayed LR aligned with this behavio= r. Does someone has an opinion for this ? By the way, the above test code can be used for the test case when the apply worker is in a delay but the transaction has been canceled b= y ALTER SUBSCRIPTION DISABLE command. So, I didn't remove it at this stage. > 3) We generally keep the subroutines before the tests, it can be kept > accordingly: > 3.a) > +sub check_apply_delay_log > +{ > + my ($message, $expected) =3D @_; > + $expected =3D 0 unless defined $expected; > + > + my $old_log_location =3D $log_location; >=20 > 3.b) > +sub check_apply_delay_time > +{ > + my ($primary_key, $expected_diffs) =3D @_; > + > + my $inserted_time_on_pub =3D $node_publisher->safe_psql('postgres= ', > qq[ > + SELECT extract(epoch from c) FROM test_tab WHERE a =3D > $primary_key; > + ]); > + Fixed. =20 > 4) typo "more then once" should be "more than once" > + regress_testsub | regress_subscription_user | f | > {testpub,testpub1,testpub2} | f | off | d | > f | any | 0 | off > | dbname=3Dregress_doesnotexist | 0/0 > (1 row) >=20 > -- fail - publication used more then once @@ -316,10 +316,10 @@ ERROR: > publication "testpub3" is not in subscription "regress_testsub" > -- ok - delete publications > ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, > testpub2 WITH (refresh =3D false); > \dRs+ This was an existing typo on HEAD. Addressed in other thread in [1]. =20 > 5) This can be changed to "Is it larger than expected?" > + # Is it larger than expected ? > + cmp_ok($logged_delay, '>', $expected, > + "The wait time of the apply worker is long > enough expectedly" > + ); Fixed. =20 > 6) 2022 should be changed to 2023 > +++ b/src/test/subscription/t/032_apply_delay.pl > @@ -0,0 +1,170 @@ > + > +# Copyright (c) 2022, PostgreSQL Global Development Group > + > +# Test replication apply delay Fixed. > 7) Termination full stop is not required for single line comments: > 7.a) > +use Test::More; > + > +# Create publisher node. > +my $node_publisher =3D PostgreSQL::Test::Cluster->new('publisher'); >=20 > 7.b) + > +# Create subscriber node. > +my $node_subscriber =3D PostgreSQL::Test::Cluster->new('subscriber'); >=20 > 7.c) + > +# Create some preexisting content on publisher. > +$node_publisher->safe_psql('postgres', >=20 > 7.d) similarly in rest of the files Removed the periods for single line comments. > 8) Is it possible to add one test for spooling also? There is a streaming transaction case in the TAP test already. I conducted some minor comment modifications along with above changes. Kindly have a look at the v16. [1] - https://www.postgresql.org/message-id/flat/TYCPR01MB83737EA140C79B7D0= 99F65E8EDC69%40TYCPR01MB8373.jpnprd01.prod.outlook.com Best Regards, Takamichi Osumi --_002_TYCPR01MB8373F3E780D5BB60E441ECF3EDC69TYCPR01MB8373jpnp_ Content-Type: application/octet-stream; name="v16-0001-Time-delayed-logical-replication-subscriber.patch" Content-Description: v16-0001-Time-delayed-logical-replication-subscriber.patch Content-Disposition: attachment; filename="v16-0001-Time-delayed-logical-replication-subscriber.patch"; size=82418; creation-date="Tue, 17 Jan 2023 10:55:27 GMT"; modification-date="Tue, 17 Jan 2023 10:55:27 GMT" Content-Transfer-Encoding: base64 RnJvbSA0N2FmMGJjNzE0Y2FjY2IzOTAwNTM4NmI0OTVmYzJjOTQ2MGQyNWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthbWljaGkgT3N1bWkgPG9zdW1pLnRha2FtaWNoaUBmdWpp dHN1LmNvbT4KRGF0ZTogVHVlLCAxNyBKYW4gMjAyMyAxMDowMzozMCArMDAwMApTdWJqZWN0OiBb UEFUQ0ggdjE2XSBUaW1lLWRlbGF5ZWQgbG9naWNhbCByZXBsaWNhdGlvbiBzdWJzY3JpYmVyCgpT aW1pbGFyIHRvIHBoeXNpY2FsIHJlcGxpY2F0aW9uLCBhIHRpbWUtZGVsYXllZCBjb3B5IG9mIHRo ZSBkYXRhIGZvcgpsb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHVzZWZ1bCBmb3Igc29tZSBzY2VuYXJp b3MgKHBhcnRpY3VsYXJseSB0byBmaXgKZXJyb3JzIHRoYXQgbWlnaHQgY2F1c2UgZGF0YSBsb3Nz KS4KCklmIHRoZSBzdWJzY3JpcHRpb24gc2V0cyBtaW5fYXBwbHlfZGVsYXkgcGFyYW1ldGVyLCB0 aGUgbG9naWNhbApyZXBsaWNhdGlvbiB3b3JrZXIgd2lsbCBkZWxheSB0aGUgdHJhbnNhY3Rpb24g Y29tbWl0IGZvciBtaW5fYXBwbHlfZGVsYXkKbWlsbGlzZWNvbmRzLgoKVGhlIGRlbGF5IGlzIGNh bGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FMIHRpbWUgc3RhbXAgYW5kIHRoZSBjdXJyZW50IHRpbWUK b24gdGhlIHN1YnNjcmliZXIuCgpUaGUgZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMg Zm9yIHRyYW5zYWN0aW9uIGJlZ2lucy4gVGhlIG1haW4KcmVhc29uIGlzIHRvIGF2b2lkIGtlZXBp bmcgYSB0cmFuc2FjdGlvbiBvcGVuIGZvciBhIGxvbmcgdGltZS4gUmVndWxhcgphbmQgcHJlcGFy ZWQgdHJhbnNhY3Rpb25zIGFyZSBjb3ZlcmVkLiBTdHJlYW1lZCB0cmFuc2FjdGlvbnMgYXJlIGFs c28KY292ZXJlZC4KClByb2hpYml0IHRoZSBjb21iaW5hdGlvbiBvZiB0aGlzIGZlYXR1cmUgYW5k IHBhcmFsbGVsIHN0cmVhbWluZyBtb2RlLgoKQXV0aG9yOiBFdWxlciBUYXZlaXJhCkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FCLUpMd1lPWXdMPVhUeUFYS2lINUN0TV9WbThLakto N2FhaXRDS3ZtQ2g0cnpyNXBRQG1haWwuZ21haWwuY29tCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIGRvYy9zcmMvc2dtbC9jb25maWcu c2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArKwogZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA3ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c3Vic2NyaXB0aW9uLnNnbWwgICAgIHwgIDU5ICsrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uYyAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgNyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDg5ICsrKysrKysrLQogLi4uL3JlcGxpY2F0aW9uL2xv Z2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIHwgICAzICstCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAxNjYgKysrKysrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jICAgICAgICAgICAgIHwgIDI5ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBzcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9k YXRhdHlwZS90aW1lc3RhbXAuaCAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd29ya2VyX2ludGVybmFsLmggICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS91dGls cy90aW1lc3RhbXAuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0ICAgIHwgMTg1ICsrKysrKysrKysrLS0tLS0tLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgICAgIHwgIDI1ICsrKwogc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIHNyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5wbCAgICB8IDE4MiArKysrKysrKysr KysrKysrKwogMjMgZmlsZXMgY2hhbmdlZCwgNzE3IGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBw bHlfZGVsYXkucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGMxZTQwNDgwNTQuLmJmM2MwNTI0MWMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCkBAIC03ODczLDYgKzc4NzMsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFj ZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+ JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3VibWluYXBwbHlkZWxheTwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgbGVuZ3RoIG9mIHRpbWUgKG1zKSB0byBkZWxheSB0aGUgYXBwbGljYXRpb24gb2Yg Y2hhbmdlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93 PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+c3VibmFtZTwvc3RydWN0Zmll bGQ+IDx0eXBlPm5hbWU8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNzc1NzRlMmQ0ZS4uODI1OGUyNTFk ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9jb25maWcuc2dtbApAQCAtNDc1Myw2ICs0NzUzLDE4IEBAIEFOWSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFz cz0iCiAgICAgICAgdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBmaWxl IG9yIG9uIHRoZSBzZXJ2ZXIKICAgICAgICBjb21tYW5kIGxpbmUuCiAgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBGb3IgdGltZS1kZWxheWVkIGxvZ2ljYWwgcmVwbGljYXRpb24s IHRoZSBhcHBseSB3b3JrZXIgc2VuZHMgYSBTdGFuZGJ5CisgICAgICAgU3RhdHVzIFVwZGF0ZSBt ZXNzYWdlIHRvIHRoZSBjb3JyZXNwb25kaW5nIHB1Ymxpc2hlciBwZXIgdGhlIGluZGljYXRlZAor ICAgICAgIHRpbWUgb2YgdGhpcyBwYXJhbWV0ZXIuIFRoZXJlZm9yZSwgaWYgdGhpcyBwYXJhbWV0 ZXIgaXMgbG9uZ2VyIHRoYW4KKyAgICAgICA8bGl0ZXJhbD53YWxfc2VuZGVyX3RpbWVvdXQ8L2xp dGVyYWw+IG9uIHRoZSBwdWJsaXNoZXIsIHRoZW4gdGhlCisgICAgICAgd2Fsc2VuZGVyIGRvZXNu J3QgZ2V0IGFueSB1cGRhdGUgbWVzc2FnZSBkdXJpbmcgdGhlIGRlbGF5IGFuZCByZXBlYXRlZGx5 CisgICAgICAgdGVybWluYXRlcyBkdWUgdG8gdGhlIHRpbWVvdXQgZXJyb3JzLiBIZW5jZSwgbWFr ZSBzdXJlIHRoaXMgcGFyYW1ldGVyIGlzCisgICAgICAgc2hvcnRlciB0aGFuIHRoZSA8bGl0ZXJh bD53YWxfc2VuZGVyX3RpbWVvdXQ8L2xpdGVyYWw+IG9mIHRoZSBwdWJsaXNoZXIuCisgICAgICAg SWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIHplcm8gd2l0aCB0aW1lLWRlbGF5ZWQgcmVwbGlj YXRpb24sIHRoZQorICAgICAgIGFwcGx5IHdvcmtlciBkb2Vzbid0IHNlbmQgYW55IGZlZWRiYWNr IG1lc3NhZ2VzIGR1cmluZyB0aGUKKyAgICAgICA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xp dGVyYWw+LgorICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0 ZW50cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDU0ZjQ4YmU4 N2YuLjY0MDc4MDQ1NDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAt MjQ3LDYgKzI0NywxMyBAQAogICAgdGFyZ2V0IHRhYmxlLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+ CisgICBUaGUgc3Vic2NyaWJlciByZXBsaWNhdGlvbiBjYW4gYmUgaW5zdHJ1Y3RlZCB0byBsYWcg YmVoaW5kIHRoZSBwdWJsaXNoZXIKKyAgIHNpZGUgY2hhbmdlcyBieSBzcGVjaWZ5aW5nIHRoZSA8 bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+CisgICBzdWJzY3JpcHRpb24gcGFyYW1l dGVyLiBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiBmb3IKKyAg IGRldGFpbHMuCisgIDwvcGFyYT4KKwogICA8c2VjdDIgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24t c3Vic2NyaXB0aW9uLXNsb3QiPgogICAgPHRpdGxlPlJlcGxpY2F0aW9uIFNsb3QgTWFuYWdlbWVu dDwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0 aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4 IGFkOTM1NTNhMWQuLjFjNmU5ZGQyZDEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbApAQCAtMjEzLDggKzIxMyw5IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAg ICAgICBhcmUgPGxpdGVyYWw+c2xvdF9uYW1lPC9saXRlcmFsPiwKICAgICAgIDxsaXRlcmFsPnN5 bmNocm9ub3VzX2NvbW1pdDwvbGl0ZXJhbD4sCiAgICAgICA8bGl0ZXJhbD5iaW5hcnk8L2xpdGVy YWw+LCA8bGl0ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+LAotICAgICAgPGxpdGVyYWw+ZGlzYWJs ZV9vbl9lcnJvcjwvbGl0ZXJhbD4sIGFuZAotICAgICAgPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFs Pi4KKyAgICAgIDxsaXRlcmFsPmRpc2FibGVfb25fZXJyb3I8L2xpdGVyYWw+LAorICAgICAgPGxp dGVyYWw+b3JpZ2luPC9saXRlcmFsPiwgYW5kCisgICAgICA8bGl0ZXJhbD5taW5fYXBwbHlfZGVs YXk8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9u LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBl YmE3MmM2YWY2Li5hZDk3OTE0ZGM4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3Jp cHRpb24uc2dtbApAQCAtMzQ5LDcgKzM0OSw0NyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAog ICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVu dHJ5PgotICAgICAgPC92YXJpYWJsZWxpc3Q+PC9wYXJhPgorCisgICAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+bWluX2FwcGx5X2RlbGF5PC9saXRlcmFsPiAoPHR5 cGU+aW50ZWdlcjwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICBCeSBkZWZhdWx0LCB0aGUgc3Vic2NyaWJlciBhcHBsaWVzIGNoYW5n ZXMgYXMgc29vbiBhcyBwb3NzaWJsZS4gQXMKKyAgICAgICAgICB3aXRoIHRoZSBwaHlzaWNhbCBy ZXBsaWNhdGlvbiBmZWF0dXJlCisgICAgICAgICAgKDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZWNvdmVy eS1taW4tYXBwbHktZGVsYXkiLz4pLCBpdCBjYW4gYmUgdXNlZnVsIHRvCisgICAgICAgICAgaGF2 ZSBhIHRpbWUtZGVsYXllZCBsb2dpY2FsIHJlcGxpY2EuIFRoaXMgcGFyYW1ldGVyIGxldHMgdGhl IHVzZXIgdG8KKyAgICAgICAgICBkZWxheSB0aGUgYXBwbGljYXRpb24gb2YgY2hhbmdlcyBieSBh IHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS4gSWYgdGhpcworICAgICAgICAgIHZhbHVlIGlzIHNw ZWNpZmllZCB3aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBtaWxsaXNlY29uZHMuIFRoZQor ICAgICAgICAgIGRlZmF1bHQgaXMgemVybyhubyBkZWxheSkuCisgICAgICAgICA8L3BhcmE+Cisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJl Y29yZHMgZm9yIHRyYW5zYWN0aW9uIGJlZ2lucyBhbmQgYWZ0ZXIKKyAgICAgICAgICB0aGUgaW5p dGlhbCB0YWJsZSBzeW5jaHJvbml6YXRpb24uIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlCisgICAg ICAgICAgcmVwbGljYXRpb24gZGVsYXkgYmV0d2VlbiBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIg ZXhjZWVkcyB0aGUgdmFsdWUKKyAgICAgICAgICBvZiB0aGlzIHBhcmFtZXRlciwgaW4gd2hpY2gg Y2FzZSBubyBkZWxheSBpcyBhZGRlZC4gTm90ZSB0aGF0IHRoZQorICAgICAgICAgIGRlbGF5IGlz IGNhbGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FMIHRpbWUgc3RhbXAgYXMgd3JpdHRlbiBvbgorICAg ICAgICAgIHB1Ymxpc2hlciBhbmQgdGhlIGN1cnJlbnQgdGltZSBvbiB0aGUgc3Vic2NyaWJlci4g VGltZSBzcGVudCBpbiBsb2dpY2FsCisgICAgICAgICAgZGVjb2RpbmcgYW5kIGluIHRyYW5zZmVy cmluZyB0aGUgdHJhbnNhY3Rpb24gbWF5IHJlZHVjZSB0aGUgYWN0dWFsIHdhaXQKKyAgICAgICAg ICB0aW1lLiBJZiB0aGUgc3lzdGVtIGNsb2NrcyBvbiBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIg YXJlIG5vdAorICAgICAgICAgIHN5bmNocm9uaXplZCwgdGhpcyBtYXkgbGVhZCB0byBhcHBseSBj aGFuZ2VzIGVhcmxpZXIgdGhhbiBleHBlY3RlZCwKKyAgICAgICAgICBidXQgdGhpcyBpcyBub3Qg YSBtYWpvciBpc3N1ZSBiZWNhdXNlIHRoaXMgcGFyYW1ldGVyIGlzIHR5cGljYWxseSBtdWNoCisg ICAgICAgICAgbGFyZ2VyIHRoYW4gdGhlIHRpbWUgZGV2aWF0aW9ucyBiZXR3ZWVuIHNlcnZlcnMu IE5vdGUgdGhhdCBpZiB0aGlzCisgICAgICAgICAgcGFyYW1ldGVyIGlzIHNldCB0byBhIGxvbmcg ZGVsYXksIHRoZSByZXBsaWNhdGlvbiB3aWxsIHN0b3AgaWYgdGhlCisgICAgICAgICAgcmVwbGlj YXRpb24gc2xvdCBmYWxscyBiZWhpbmQgdGhlIGN1cnJlbnQgTFNOIGJ5IG1vcmUgdGhhbgorICAg ICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1tYXgtc2xvdC13YWwta2VlcC1zaXplIj48bGl0ZXJh bD5tYXhfc2xvdF93YWxfa2VlcF9zaXplPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgICA8d2FybmluZz4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBE ZWxheWluZyB0aGUgcmVwbGljYXRpb24gY2FuIG1lYW4gdGhlcmUgaXMgYSBtdWNoIGxvbmdlciB0 aW1lIGJldHdlZW4gbWFraW5nCisgICAgICAgICAgICBhIGNoYW5nZSBvbiB0aGUgcHVibGlzaGVy LCBhbmQgdGhhdCBjaGFuZ2UgYmVpbmcgY29tbWl0dGVkIG9uIHRoZSBzdWJzY3JpYmVyLgorICAg ICAgICAgICAgVGhpcyBjYW4gaGF2ZSBhIGJpZyBpbXBhY3Qgb24gc3luY2hyb25vdXMgcmVwbGlj YXRpb24uCisgICAgICAgICAgICBTZWUgPHhyZWYgbGlua2VuZD0iZ3VjLXN5bmNocm9ub3VzLWNv bW1pdCIvPi4KKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPC93YXJuaW5nPgorICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJsZWxp c3Q+CisgICAgIDwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K QEAgLTQxMyw2ICs0NTMsMTEgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgIHB1Ymxpc2hl ZCB3aXRoIGRpZmZlcmVudCBjb2x1bW4gbGlzdHMgYXJlIG5vdCBzdXBwb3J0ZWQuCiAgIDwvcGFy YT4KIAorICA8cGFyYT4KKyAgIFNldHRpbmcgc3RyZWFtaW5nIHRvIDxsaXRlcmFsPnBhcmFsbGVs PC9saXRlcmFsPiBtb2RlIGFuZCA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+Cisg ICBzaW11bHRhbmVvdXNseSBpcyBub3Qgc3VwcG9ydGVkLgorICA8L3BhcmE+CisKICAgPHBhcmE+ CiAgICBXZSBhbGxvdyBub24tZXhpc3RlbnQgcHVibGljYXRpb25zIHRvIGJlIHNwZWNpZmllZCBz byB0aGF0IHVzZXJzIGNhbiBhZGQKICAgIHRob3NlIGxhdGVyLiBUaGlzIG1lYW5zCkBAIC00NzIs NiArNTE3LDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gbXlzdWIKICAgICAgICAgUFVCTElDQVRJ T04gaW5zZXJ0X29ubHkKICAgICAgICAgICAgICAgIFdJVEggKGVuYWJsZWQgPSBmYWxzZSk7CiA8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhIHN1YnNjcmlw dGlvbiB0byBhIHJlbW90ZSBzZXJ2ZXIgdGhhdCByZXBsaWNhdGVzIHRhYmxlcyBpbgorICAgdGhl IDxsaXRlcmFsPm15cHViPC9saXRlcmFsPiBwdWJsaWNhdGlvbiBhbmQgc3RhcnRzIHJlcGxpY2F0 aW5nIGltbWVkaWF0ZWx5CisgICBvbiBjb21taXQuIFByZS1leGlzdGluZyBkYXRhIGlzIG5vdCBj b3BpZWQuIFRoZSBhcHBsaWNhdGlvbiBvZiBjaGFuZ2VzIGlzCisgICBkZWxheWVkIGJ5IDQgaG91 cnMuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgU1VCU0NSSVBUSU9OIG15c3ViCisgICAgICAg ICBDT05ORUNUSU9OICdob3N0PTE5Mi4wLjIuNCBwb3J0PTU0MzIgdXNlcj1mb28gZGJuYW1lPWZv b2RiJworICAgICAgICBQVUJMSUNBVElPTiBteXB1YgorICAgICAgICAgICAgICAgV0lUSCAoY29w eV9kYXRhID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9ICc0aCcpOworPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5jCmluZGV4IGE1NmFlMzExYzMuLmM3NjdjYzFjM2EgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNjQsNiArNjQsNyBAQCBHZXRTdWJzY3JpcHRp b24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5vaWQgPSBzdWJpZDsKIAlzdWIt PmRiaWQgPSBzdWJmb3JtLT5zdWJkYmlkOwogCXN1Yi0+c2tpcGxzbiA9IHN1YmZvcm0tPnN1YnNr aXBsc247CisJc3ViLT5taW5hcHBseWRlbGF5ID0gc3ViZm9ybS0+c3VibWluYXBwbHlkZWxheTsK IAlzdWItPm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoc3ViZm9ybS0+c3VibmFtZSkpOwogCXN1Yi0+ b3duZXIgPSBzdWJmb3JtLT5zdWJvd25lcjsKIAlzdWItPmVuYWJsZWQgPSBzdWJmb3JtLT5zdWJl bmFibGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGQyYThjODI5MDAu LjA5NTBiNGI3NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEyOTgs OSArMTI5OCwxMCBAQCBSRVZPS0UgQUxMIE9OIHBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXMg RlJPTSBwdWJsaWM7CiAKIC0tIEFsbCBjb2x1bW5zIG9mIHBnX3N1YnNjcmlwdGlvbiBleGNlcHQg c3ViY29ubmluZm8gYXJlIHB1YmxpY2x5IHJlYWRhYmxlLgogUkVWT0tFIEFMTCBPTiBwZ19zdWJz Y3JpcHRpb24gRlJPTSBwdWJsaWM7Ci1HUkFOVCBTRUxFQ1QgKG9pZCwgc3ViZGJpZCwgc3Vic2tp cGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJsZWQsCi0gICAgICAgICAgICAgIHN1YmJp bmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0YXRlLCBzdWJkaXNhYmxlb25lcnIsCi0gICAg ICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMsIHN1 Ym9yaWdpbikKK0dSQU5UIFNFTEVDVCAob2lkLCBzdWJkYmlkLCBzdWJza2lwbHNuLCBzdWJtaW5h cHBseWRlbGF5LCBzdWJuYW1lLCBzdWJvd25lciwKKyAgICAgICAgICAgICAgc3ViZW5hYmxlZCwg c3ViYmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsCisgICAgICAgICAgICAgIHN1 YmRpc2FibGVvbmVyciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9u cywKKyAgICAgICAgICAgICAgc3Vib3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBw dWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggYmFmZjAwZGQ3NC4uYmQ5Yjhj MDk5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtNjYsNiAr NjYsNyBAQAogI2RlZmluZSBTVUJPUFRfRElTQUJMRV9PTl9FUlIJCTB4MDAwMDA0MDAKICNkZWZp bmUgU1VCT1BUX0xTTgkJCQkJMHgwMDAwMDgwMAogI2RlZmluZSBTVUJPUFRfT1JJR0lOCQkJCTB4 MDAwMDEwMDAKKyNkZWZpbmUgU1VCT1BUX01JTl9BUFBMWV9ERUxBWQkJMHgwMDAwMjAwMAogCiAv KiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQodmFs LCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAtOTAsNiArOTEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJZGlzYWJsZW9uZXJyOwogCWNoYXIJICAgKm9y aWdpbjsKIAlYTG9nUmVjUHRyCWxzbjsKKwlpbnQJCQltaW5fYXBwbHlfZGVsYXk7CiB9IFN1Yk9w dHM7CiAKIHN0YXRpYyBMaXN0ICpmZXRjaF90YWJsZV9saXN0KFdhbFJlY2VpdmVyQ29ubiAqd3Jj b25uLCBMaXN0ICpwdWJsaWNhdGlvbnMpOwpAQCAtMTQ2LDYgKzE0OCw4IEBAIHBhcnNlX3N1YnNj cmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAog CQlvcHRzLT5kaXNhYmxlb25lcnIgPSBmYWxzZTsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMs IFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJ R0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RF TEFZKSkKKwkJb3B0cy0+bWluX2FwcGx5X2RlbGF5ID0gMDsKIAogCS8qIFBhcnNlIG9wdGlvbnMg Ki8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlvbnMpCkBAIC0zMjQsNiArMzI4LDQzIEBAIHBhcnNl X3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRp b25zLAogCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VCT1BUX0xTTjsKIAkJCW9wdHMtPmxz biA9IGxzbjsKIAkJfQorCQllbHNlIGlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX01J Tl9BUFBMWV9ERUxBWSkgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAibWluX2FwcGx5 X2RlbGF5IikgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFsLAorCQkJCQkgICAqdG1wOworCQkJ SW50ZXJ2YWwgICAqaW50ZXJ2YWw7CisJCQlpbnQ2NAkJbXM7CisKKwkJCWlmIChJc1NldChvcHRz LT5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX01JTl9BUFBMWV9ERUxBWSkpCisJCQkJZXJyb3JDb25m bGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMtPnNwZWNpZmllZF9vcHRz IHw9IFNVQk9QVF9NSU5fQVBQTFlfREVMQVk7CisJCQl0bXAgPSBkZWZHZXRTdHJpbmcoZGVmZWwp OworCisJCQkvKgorCQkJICogSWYgbm8gdW5pdCB3YXMgc3BlY2lmaWVkLCB0aGVuIGV4cGxpY2l0 bHkgYWRkICdtcycgb3RoZXJ3aXNlCisJCQkgKiB0aGUgaW50ZXJ2YWxfaW4gZnVuY3Rpb24gd291 bGQgYXNzdW1lICdzZWNvbmRzJy4KKwkJCSAqLworCQkJaWYgKHN0cnNwbih0bXAsICItMDEyMzQ1 Njc4OSAiKSA9PSBzdHJsZW4odG1wKSkKKwkJCQl2YWwgPSBwc3ByaW50ZigiJXNtcyIsIHRtcCk7 CisJCQllbHNlCisJCQkJdmFsID0gdG1wOworCisJCQlpbnRlcnZhbCA9IERhdHVtR2V0SW50ZXJ2 YWxQKERpcmVjdEZ1bmN0aW9uQ2FsbDMoaW50ZXJ2YWxfaW4sCisJCQkJCQkJCQkJCQkJCQkgQ1N0 cmluZ0dldERhdHVtKHZhbCksCisJCQkJCQkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShJbnZh bGlkT2lkKSwKKwkJCQkJCQkJCQkJCQkJCSBJbnQzMkdldERhdHVtKC0xKSkpOworCisJCQltcyA9 IGludGVydmFsMm1zKGludGVydmFsKTsKKwkJCWlmIChtcyA8IDAgfHwgbXMgPiBJTlRfTUFYKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAorCQkJCQkJZXJybXNnKCIlbGxkIG1zIGlzIG91dHNpZGUgdGhlIHZhbGlk IHJhbmdlIGZvciBwYXJhbWV0ZXIgXCIlc1wiICgwIC4uICVkKSIsCisJCQkJCQkJICAgKGxvbmcg bG9uZykgbXMsICJtaW5fYXBwbHlfZGVsYXkiLCBJTlRfTUFYKSk7CisKKwkJCW9wdHMtPm1pbl9h cHBseV9kZWxheSA9IG1zOworCQl9CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTQwNCw2ICs0NDUsMTcgQEAgcGFyc2Vf c3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlv bnMsCiAJCQkJCQkJCSJzbG90X25hbWUgPSBOT05FIiwgImNyZWF0ZV9zbG90ID0gZmFsc2UiKSkp OwogCQl9CiAJfQorCisJLyogVGVzdCB0aGUgY29tYmluYXRpb24gb2Ygc3RyZWFtaW5nIG1vZGUg YW5kIG1pbl9hcHBseV9kZWxheSAqLworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BU X01JTl9BUFBMWV9ERUxBWSkgJiYKKwkJb3B0cy0+bWluX2FwcGx5X2RlbGF5ID4gMCkKKwl7CisJ CWlmIChvcHRzLT5zdHJlYW1pbmcgPT0gTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ ZXJybXNnKCIlcyBhbmQgJXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBvcHRpb25zIiwKKwkJCQkJ CSAgICJtaW5fYXBwbHlfZGVsYXkgPiAwIiwgInN0cmVhbWluZyA9IHBhcmFsbGVsIikpOworCX0K IH0KIAogLyoKQEAgLTU2MCw3ICs2MTIsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9T TE9UX05BTUUgfCBTVUJPUFRfQ09QWV9EQVRBIHwKIAkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNf Q09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9Q VF9UV09QSEFTRV9DT01NSVQgfAotCQkJCQkgIFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8IFNVQk9Q VF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8IFNVQk9QVF9PUklHSU4g fAorCQkJCQkgIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9v cHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAog CS8qCkBAIC02MjUsNiArNjc4LDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19zdWJz Y3JpcHRpb25fb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHN1YmlkKTsKIAl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViZGJpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShNeURhdGFi YXNlSWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJza2lwbHNuIC0gMV0gPSBM U05HZXREYXR1bShJbnZhbGlkWExvZ1JlY1B0cik7CisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1Ym1pbmFwcGx5ZGVsYXkgLSAxXSA9IEludDY0R2V0RGF0dW0ob3B0cy5taW5fYXBwbHlf ZGVsYXkpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJuYW1lIC0gMV0gPQogCQlE aXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKHN0bXQtPnN1Ym5hbWUp KTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3duZXIgLSAxXSA9IE9iamVjdElk R2V0RGF0dW0ob3duZXIpOwpAQCAtMTA1NCw3ICsxMTA4LDcgQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJc3Vw cG9ydGVkX29wdHMgPSAoU1VCT1BUX1NMT1RfTkFNRSB8CiAJCQkJCQkJCSAgU1VCT1BUX1NZTkNI Uk9OT1VTX0NPTU1JVCB8IFNVQk9QVF9CSU5BUlkgfAogCQkJCQkJCQkgIFNVQk9QVF9TVFJFQU1J TkcgfCBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfAotCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4pOwor CQkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKTsKIAogCQkJ CXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKIAkJCQkJ CQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTA5OCw2ICsxMTUyLDE4IEBAIEFs dGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10 ICpzdG10LAogCiAJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9TVFJF QU1JTkcpKQogCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogVGVzdCB0aGUgY29tYmluYXRpb24gb2Yg c3RyZWFtaW5nIG1vZGUgYW5kCisJCQkJCSAqIG1pbl9hcHBseV9kZWxheQorCQkJCQkgKi8KKwkJ CQkJaWYgKG9wdHMuc3RyZWFtaW5nID09IExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKQorCQkJ CQkJaWYgKChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZ KSAmJiBvcHRzLm1pbl9hcHBseV9kZWxheSA+IDApIHx8CisJCQkJCQkJKCFJc1NldChvcHRzLnNw ZWNpZmllZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSAmJiBzdWItPm1pbmFwcGx5ZGVs YXkgPiAwKSkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJZXJyY29kZShFUlJDT0RF X09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJCWVycm1zZygiY2Fu bm90IGVuYWJsZSAlcyBtb2RlIGZvciBzdWJzY3JpcHRpb24gd2l0aCAlcyIsCisJCQkJCQkJCQkJ ICAgInN0cmVhbWluZyA9IHBhcmFsbGVsIiwgIm1pbl9hcHBseV9kZWxheSIpKTsKKwogCQkJCQl2 YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic3RyZWFtIC0gMV0gPQogCQkJCQkJQ2hhckdl dERhdHVtKG9wdHMuc3RyZWFtaW5nKTsKIAkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRp b25fc3Vic3RyZWFtIC0gMV0gPSB0cnVlOwpAQCAtMTExMSw2ICsxMTc3LDI1IEBAIEFsdGVyU3Vi c2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10 LAogCQkJCQkJPSB0cnVlOwogCQkJCX0KIAorCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9v cHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFRl c3QgdGhlIGNvbWJpbmF0aW9uIG9mIHN0cmVhbWluZyBtb2RlIGFuZAorCQkJCQkgKiBtaW5fYXBw bHlfZGVsYXkKKwkJCQkJICovCisJCQkJCWlmIChvcHRzLm1pbl9hcHBseV9kZWxheSA+IDApCisJ CQkJCQlpZiAoKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9TVFJFQU1JTkcpICYm IG9wdHMuc3RyZWFtaW5nID09IExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSB8fAorCQkJCQkJ CSghSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX1NUUkVBTUlORykgJiYgc3ViLT5z dHJlYW0gPT0gTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpKQorCQkJCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVf U1RBVEUpLAorCQkJCQkJCQkJZXJybXNnKCJjYW5ub3QgZW5hYmxlICVzIGZvciBzdWJzY3JpcHRp b24gaW4gJXMgbW9kZSIsCisJCQkJCQkJCQkJICAgIm1pbl9hcHBseV9kZWxheSIsICJzdHJlYW1p bmcgPSBwYXJhbGxlbCIpKTsKKworCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi bWluYXBwbHlkZWxheSAtIDFdID0KKwkJCQkJCUludDY0R2V0RGF0dW0ob3B0cy5taW5fYXBwbHlf ZGVsYXkpOworCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJtaW5hcHBseWRl bGF5IC0gMV0gPSB0cnVlOworCQkJCX0KKwogCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9v cHRzLCBTVUJPUFRfT1JJR0lOKSkKIAkJCQl7CiAJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJvcmlnaW4gLSAxXSA9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jCmluZGV4IDNkZmNmZjI3OTguLmNiOTQ1MjQz YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJh bGxlbHdvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlw YXJhbGxlbHdvcmtlci5jCkBAIC03MDQsNyArNzA0LDggQEAgcGFfcHJvY2Vzc19zcG9vbGVkX21l c3NhZ2VzX2lmX3JlcXVpcmVkKHZvaWQpCiAJewogCQlhcHBseV9zcG9vbGVkX21lc3NhZ2VzKCZN eVBhcmFsbGVsU2hhcmVkLT5maWxlc2V0LAogCQkJCQkJCSAgIE15UGFyYWxsZWxTaGFyZWQtPnhp ZCwKLQkJCQkJCQkgICBJbnZhbGlkWExvZ1JlY1B0cik7CisJCQkJCQkJICAgSW52YWxpZFhMb2dS ZWNQdHIsCisJCQkJCQkJICAgMCk7CiAJCXBhX3NldF9maWxlc2V0X3N0YXRlKE15UGFyYWxsZWxT aGFyZWQsIEZTX0VNUFRZKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jCmluZGV4IGEwMDg0YzdlZjYuLjdlZjY1Mzc0OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtMzE4LDYgKzMxOCwxNyBAQCBzdGF0aWMgTGlzdCAq b25fY29tbWl0X3dha2V1cF93b3JrZXJzX3N1YmlkcyA9IE5JTDsKIGJvb2wJCWluX3JlbW90ZV90 cmFuc2FjdGlvbiA9IGZhbHNlOwogc3RhdGljIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbiA9 IEludmFsaWRYTG9nUmVjUHRyOwogCisvKgorICogSW4gb3JkZXIgdG8gYXZvaWQgd2Fsc2VuZGVy J3MgdGltZW91dCBkdXJpbmcgdGltZS1kZWxheWVkIHJlcGxpY2F0aW9uLAorICogaXQncyBuZWNl c3NhcnkgdG8ga2VlcCBzZW5kaW5nIGZlZWRiYWNrIG1lc3NhZ2VzIGR1cmluZyB0aGUgZGVsYXkg ZnJvbSB0aGUKKyAqIHdvcmtlciBwcm9jZXNzLiBNZWFud2hpbGUsIHRoZSBmZWF0dXJlIGRlbGF5 cyB0aGUgYXBwbHkgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICogdHJhbnNhY3Rpb24gYW5kIHRodXMg d2UgZG9uJ3Qgd3JpdGUgV0FMcyBmb3IgdGhlIHN1c3BlbmRlZCBjaGFuZ2VzIGR1cmluZworICog dGhlIHdhaXQuIEhlbmNlLCBpbiB0aGUgY2FzZSB0aGUgd29ya2VyIHByb2Nlc3Mgc2VuZHMgYSBm ZWVkYmFjayBtZXNzYWdlCisgKiBkdXJpbmcgdGhlIGRlbGF5LCB3ZSBzaG91bGQgbm90IG1ha2Ug cG9zaXRpb25zIG9mIHRoZSBmbHVzaGVkIGFuZCBhcHBseSBMU04KKyAqIG92ZXJ3cml0dGVuIGJ5 IHRoZSBsYXN0IHJlY2VpdmVkIGxhdGVzdCBMU04uIFNlZSBzZW5kX2ZlZWRiYWNrKCkgZm9yIGRl dGFpbHMuCisgKi8KK3N0YXRpYyBYTG9nUmVjUHRyIGxhc3RfcmVjZWl2ZWQgPSBJbnZhbGlkWExv Z1JlY1B0cjsKKwogLyogZmllbGRzIHZhbGlkIG9ubHkgd2hlbiBwcm9jZXNzaW5nIHN0cmVhbWVk IHRyYW5zYWN0aW9uICovCiBzdGF0aWMgYm9vbCBpbl9zdHJlYW1lZF90cmFuc2FjdGlvbiA9IGZh bHNlOwogCkBAIC0zODgsMTAgKzM5OSwxMyBAQCBzdGF0aWMgdm9pZCBzdHJlYW1fd3JpdGVfY2hh bmdlKGNoYXIgYWN0aW9uLCBTdHJpbmdJbmZvIHMpOwogc3RhdGljIHZvaWQgc3RyZWFtX29wZW5f YW5kX3dyaXRlX2NoYW5nZShUcmFuc2FjdGlvbklkIHhpZCwgY2hhciBhY3Rpb24sIFN0cmluZ0lu Zm8gcyk7CiBzdGF0aWMgdm9pZCBzdHJlYW1fY2xvc2VfZmlsZSh2b2lkKTsKIAotc3RhdGljIHZv aWQgc2VuZF9mZWVkYmFjayhYTG9nUmVjUHRyIHJlY3Zwb3MsIGJvb2wgZm9yY2UsIGJvb2wgcmVx dWVzdFJlcGx5KTsKK3N0YXRpYyB2b2lkIHNlbmRfZmVlZGJhY2soWExvZ1JlY1B0ciByZWN2cG9z LCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSwKKwkJCQkJCSAgYm9vbCBpbl9kZWxheWlu Z19hcHBseSk7CiAKIHN0YXRpYyB2b2lkIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQp OwogCitzdGF0aWMgdm9pZCBtYXliZV9kZWxheV9hcHBseShUaW1lc3RhbXBUeiBmaW5pc2hfdHMp OworCiBzdGF0aWMgdm9pZCBhcHBseV9oYW5kbGVfY29tbWl0X2ludGVybmFsKExvZ2ljYWxSZXBD b21taXREYXRhICpjb21taXRfZGF0YSk7CiBzdGF0aWMgdm9pZCBhcHBseV9oYW5kbGVfaW5zZXJ0 X2ludGVybmFsKEFwcGx5RXhlY3V0aW9uRGF0YSAqZWRhdGEsCiAJCQkJCQkJCQkJIFJlc3VsdFJl bEluZm8gKnJlbGluZm8sCkBAIC05OTgsNiArMTAxMiw5OSBAQCBzbG90X21vZGlmeV9kYXRhKFR1 cGxlVGFibGVTbG90ICpzbG90LCBUdXBsZVRhYmxlU2xvdCAqc3Jjc2xvdCwKIAlFeGVjU3RvcmVW aXJ0dWFsVHVwbGUoc2xvdCk7CiB9CiAKKy8qCisgKiBXaGVuIG1pbl9hcHBseV9kZWxheSBwYXJh bWV0ZXIgaXMgc2V0IG9uIHRoZSBzdWJzY3JpYmVyLCB3ZSB3YWl0IGxvbmcgZW5vdWdoCisgKiB0 byBtYWtlIHN1cmUgYSB0cmFuc2FjdGlvbiBpcyBhcHBsaWVkIGF0IGxlYXN0IHRoYXQgaW50ZXJ2 YWwgYmVoaW5kIHRoZQorICogcHVibGlzaGVyLgorICoKKyAqIFdoaWxlIHRoZSBwaHlzaWNhbCBy ZXBsaWNhdGlvbiBhcHBsaWVzIHRoZSBkZWxheSBhdCBjb21taXQgdGltZSwgdGhpcworICogZmVh dHVyZSBhcHBsaWVzIHRoZSBkZWxheSBmb3IgdGhlIG5leHQgdHJhbnNhY3Rpb24gYnV0IGJlZm9y ZSBzdGFydGluZyB0aGUKKyAqIHRyYW5zYWN0aW9uLiBUaGlzIGlzIG1haW5seSBiZWNhdXNlIGtl ZXBpbmcgYSB0cmFuc2FjdGlvbiB0aGF0IGNvbmR1Y3RlZAorICogd3JpdGUgb3BlcmF0aW9ucyBv cGVuIGZvciBhIGxvbmcgdGltZSByZXN1bHRzIGluIHNvbWUgaXNzdWVzIHN1Y2ggYXMgYmxvYXQK KyAqIGFuZCBsb2Nrcy4KKyAqCisgKiBUaGUgbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciB3aWxs IHRha2UgZWZmZWN0IG9ubHkgYWZ0ZXIgYWxsIHRhYmxlcyBhcmUgaW4KKyAqIFJFQURZIHN0YXRl LgorICoKKyAqIGZpbmlzaF90cyBpcyB0aGUgY29tbWl0L3ByZXBhcmUgdGltZSBvZiBib3RoIHJl Z3VsYXIgKG5vbi1zdHJlYW1lZCkgYW5kCisgKiBzdHJlYW1lZCB0cmFuc2FjdGlvbnMuCisgKi8K K3N0YXRpYyB2b2lkCittYXliZV9kZWxheV9hcHBseShUaW1lc3RhbXBUeiBmaW5pc2hfdHMpCit7 CisJQXNzZXJ0KGZpbmlzaF90cyA+IDApOworCisJLyogTm90aGluZyB0byBkbyBpZiBubyBkZWxh eSBzZXQgKi8KKwlpZiAoTXlTdWJzY3JpcHRpb24tPm1pbmFwcGx5ZGVsYXkgPD0gMCkKKwkJcmV0 dXJuOworCisJLyoKKwkgKiBUaGUgbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciBpcyBpZ25vcmVk IHVudGlsIGFsbCB0YWJsZXN5bmMgd29ya2VycworCSAqIGhhdmUgcmVhY2hlZCBSRUFEWSBzdGF0 ZS4gSWYgd2UgYWxsb3cgdGhlIGRlbGF5IGR1cmluZyB0aGUgY2F0Y2h1cAorCSAqIHBoYXNlLCBv bmNlIHdlIHJlYWNoIHRoZSBsaW1pdCBvZiB0YWJsZXN5bmMgd29ya2VycywgaXQgd2lsbCBpbXBv c2UgYQorCSAqIGRlbGF5IGZvciBlYWNoIHN1YnNlcXVlbnQgd29ya2VyLiBJdCBtZWFucyBpdCB3 aWxsIHRha2UgYSBsb25nIHRpbWUgdG8KKwkgKiBmaW5pc2ggdGhlIGluaXRpYWwgdGFibGUgc3lu Y2hyb25pemF0aW9uLgorCSAqLworCWlmICghQWxsVGFibGVzeW5jc1JlYWR5KCkpCisJCXJldHVy bjsKKworCXdoaWxlICh0cnVlKQorCXsKKwkJbG9uZwkJZGlmZm1zOworCisJCVJlc2V0TGF0Y2go TXlMYXRjaCk7CisKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoQ29uZmlnUmVs b2FkUGVuZGluZykKKwkJeworCQkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCQkJUHJv Y2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CisJCX0KKworCQkvKgorCQkgKiBCZWZvcmUgY2Fs Y3VsYXRpbmcgdGhlIHRpbWUgZHVyYXRpb24sIHJlbG9hZCB0aGUgY2F0YWxvZyBpZiBuZWVkZWQu CisJCSAqLworCQlpZiAoIWluX3JlbW90ZV90cmFuc2FjdGlvbiAmJiAhaW5fc3RyZWFtZWRfdHJh bnNhY3Rpb24pCisJCXsKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1lc3NhZ2VzKCk7CisJCQltYXli ZV9yZXJlYWRfc3Vic2NyaXB0aW9uKCk7CisJCX0KKworCQlkaWZmbXMgPSBUaW1lc3RhbXBEaWZm ZXJlbmNlTWlsbGlzZWNvbmRzKEdldEN1cnJlbnRUaW1lc3RhbXAoKSwKKwkJCQkJCQkJCQkJCSBU aW1lc3RhbXBUelBsdXNNaWxsaXNlY29uZHMoZmluaXNoX3RzLCBNeVN1YnNjcmlwdGlvbi0+bWlu YXBwbHlkZWxheSkpOworCisJCS8qCisJCSAqIEV4aXQgd2l0aG91dCBhcm1pbmcgdGhlIGxhdGNo IGlmIGl0J3MgYWxyZWFkeSBwYXN0IHRpbWUgdG8gYXBwbHkKKwkJICogdGhpcyB0cmFuc2FjdGlv bi4KKwkJICovCisJCWlmIChkaWZmbXMgPD0gMCkKKwkJCWJyZWFrOworCisJCWVsb2coREVCVUcy LCAibG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSBkZWxheTogJWxkIG1zIiwgZGlmZm1zKTsKKwor CQkvKgorCQkgKiBDYWxsIHNlbmRfZmVlZGJhY2soKSB0byBwcmV2ZW50IHRoZSBwdWJsaXNoZXIg ZnJvbSBleGl0aW5nIGJ5CisJCSAqIHRpbWVvdXQgZHVyaW5nIHRoZSBkZWxheSwgd2hlbiB3YWxf cmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsIGlzCisJCSAqIGF2YWlsYWJsZS4KKwkJICovCisJCWlm ICh3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsID4gMAorCQkJJiYgZGlmZm1zID4gd2FsX3Jl Y2VpdmVyX3N0YXR1c19pbnRlcnZhbCAqIDEwMDApCisJCXsKKwkJCVdhaXRMYXRjaChNeUxhdGNo LAorCQkJCQkgIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRI LAorCQkJCQkgIChsb25nKSB3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsICogMTAwMCwKKwkJ CQkJICBXQUlUX0VWRU5UX1JFQ09WRVJZX0FQUExZX0RFTEFZKTsKKwkJCXNlbmRfZmVlZGJhY2so bGFzdF9yZWNlaXZlZCwgdHJ1ZSwgZmFsc2UsIHRydWUpOworCQl9CisJCWVsc2UKKwkJCVdhaXRM YXRjaChNeUxhdGNoLAorCQkJCQkgIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElU X09OX1BNX0RFQVRILAorCQkJCQkgIGRpZmZtcywKKwkJCQkJICBXQUlUX0VWRU5UX1JFQ09WRVJZ X0FQUExZX0RFTEFZKTsKKwl9Cit9CisKIC8qCiAgKiBIYW5kbGUgQkVHSU4gbWVzc2FnZS4KICAq LwpAQCAtMTAxMiw2ICsxMTE5LDkgQEAgYXBwbHlfaGFuZGxlX2JlZ2luKFN0cmluZ0luZm8gcykK IAlsb2dpY2FscmVwX3JlYWRfYmVnaW4ocywgJmJlZ2luX2RhdGEpOwogCXNldF9hcHBseV9lcnJv cl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKIAor CS8qIFNob3VsZCB3ZSBkZWxheSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbj8gKi8KKwltYXliZV9k ZWxheV9hcHBseShiZWdpbl9kYXRhLmNvbW1pdHRpbWUpOworCiAJcmVtb3RlX2ZpbmFsX2xzbiA9 IGJlZ2luX2RhdGEuZmluYWxfbHNuOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhi ZWdpbl9kYXRhLmZpbmFsX2xzbik7CkBAIC0xMDY5LDYgKzExNzksOSBAQCBhcHBseV9oYW5kbGVf YmVnaW5fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJbG9naWNhbHJlcF9yZWFkX2JlZ2luX3ByZXBh cmUocywgJmJlZ2luX2RhdGEpOwogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5f ZGF0YS54aWQsIGJlZ2luX2RhdGEucHJlcGFyZV9sc24pOwogCisJLyogU2hvdWxkIHdlIGRlbGF5 IHRoZSBjdXJyZW50IHByZXBhcmVkIHRyYW5zYWN0aW9uPyAqLworCW1heWJlX2RlbGF5X2FwcGx5 KGJlZ2luX2RhdGEucHJlcGFyZV90aW1lKTsKKwogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9k YXRhLnByZXBhcmVfbHNuOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhiZWdpbl9k YXRhLnByZXBhcmVfbHNuKTsKQEAgLTEzMTYsNyArMTQyOSw4IEBAIGFwcGx5X2hhbmRsZV9zdHJl YW1fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJCQkgKiBzcG9vbGVkIG9wZXJhdGlvbnMuCiAJCQkg Ki8KIAkJCWFwcGx5X3Nwb29sZWRfbWVzc2FnZXMoTXlMb2dpY2FsUmVwV29ya2VyLT5zdHJlYW1f ZmlsZXNldCwKLQkJCQkJCQkJICAgcHJlcGFyZV9kYXRhLnhpZCwgcHJlcGFyZV9kYXRhLnByZXBh cmVfbHNuKTsKKwkJCQkJCQkJICAgcHJlcGFyZV9kYXRhLnhpZCwgcHJlcGFyZV9kYXRhLnByZXBh cmVfbHNuLAorCQkJCQkJCQkgICBwcmVwYXJlX2RhdGEucHJlcGFyZV90aW1lKTsKIAogCQkJLyog TWFyayB0aGUgdHJhbnNhY3Rpb24gYXMgcHJlcGFyZWQuICovCiAJCQlhcHBseV9oYW5kbGVfcHJl cGFyZV9pbnRlcm5hbCgmcHJlcGFyZV9kYXRhKTsKQEAgLTIwMTAsMTAgKzIxMjQsMTMgQEAgZW5z dXJlX2xhc3RfbWVzc2FnZShGaWxlU2V0ICpzdHJlYW1fZmlsZXNldCwgVHJhbnNhY3Rpb25JZCB4 aWQsIGludCBmaWxlbm8sCiAKIC8qCiAgKiBDb21tb24gc3Bvb2xmaWxlIHByb2Nlc3NpbmcuCisg KgorICogVGhlIGNvbW1pdC9wcmVwYXJlIHRpbWUgZm9yIHN0cmVhbWluZyB0cmFuc2FjdGlvbiBp cyByZXF1aXJlZCB0byBhY2hpZXZlCisgKiB0aW1lLWRlbGF5ZWQgcmVwbGljYXRpb24uCiAgKi8K IHZvaWQKIGFwcGx5X3Nwb29sZWRfbWVzc2FnZXMoRmlsZVNldCAqc3RyZWFtX2ZpbGVzZXQsIFRy YW5zYWN0aW9uSWQgeGlkLAotCQkJCQkgICBYTG9nUmVjUHRyIGxzbikKKwkJCQkJICAgWExvZ1Jl Y1B0ciBsc24sIFRpbWVzdGFtcFR6IGZpbmlzaF90cykKIHsKIAlTdHJpbmdJbmZvRGF0YSBzMjsK IAlpbnQJCQluY2hhbmdlczsKQEAgLTIwMjQsNiArMjE0MSwyMSBAQCBhcHBseV9zcG9vbGVkX21l c3NhZ2VzKEZpbGVTZXQgKnN0cmVhbV9maWxlc2V0LCBUcmFuc2FjdGlvbklkIHhpZCwKIAlpbnQJ CQlmaWxlbm87CiAJb2ZmX3QJCW9mZnNldDsKIAorCS8qCisJICogU2hvdWxkIHdlIGRlbGF5IHRo ZSBjdXJyZW50IHRyYW5zYWN0aW9uPworCSAqCisJICogVW5saWtlIHRoZSByZWd1bGFyIChub24t c3RyZWFtZWQpIGNhc2VzLCB0aGUgZGVsYXkgaXMgYXBwbGllZCBpbiBhCisJICogU1RSRUFNIENP TU1JVC9TVFJFQU0gUFJFUEFSRSBtZXNzYWdlIGZvciBzdHJlYW1lZCB0cmFuc2FjdGlvbnMuIFRo ZQorCSAqIFNUUkVBTSBTVEFSVCBtZXNzYWdlIGRvZXMgbm90IGNvbnRhaW4gYSBjb21taXQvcHJl cGFyZSB0aW1lIChpdCB3aWxsIGJlCisJICogYXZhaWxhYmxlIHdoZW4gdGhlIGluLXByb2dyZXNz IHRyYW5zYWN0aW9uIGZpbmlzaGVzKS4gSGVuY2UsIGl0J3Mgbm90CisJICogYXBwcm9wcmlhdGUg dG8gYXBwbHkgYSBkZWxheSBhdCB0aGF0IHRpbWUuCisJICoKKwkgKiBJdCdzIG5vdCBhbGxvd2Vk IHRvIGV4ZWN1dGUgdGltZS1kZWxheWVkIHJlcGxpY2F0aW9uIHdpdGggcGFyYWxsZWwKKwkgKiBh cHBseSBmZWF0dXJlLgorCSAqLworCWlmICghYW1fcGFyYWxsZWxfYXBwbHlfd29ya2VyKCkpCisJ CW1heWJlX2RlbGF5X2FwcGx5KGZpbmlzaF90cyk7CisKIAlpZiAoIWFtX3BhcmFsbGVsX2FwcGx5 X3dvcmtlcigpKQogCQltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGxzbik7CiAKQEAgLTIx NzMsNyArMjMwNSw3IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fY29tbWl0KFN0cmluZ0luZm8gcykK IAkJCSAqIHNwb29sZWQgb3BlcmF0aW9ucy4KIAkJCSAqLwogCQkJYXBwbHlfc3Bvb2xlZF9tZXNz YWdlcyhNeUxvZ2ljYWxSZXBXb3JrZXItPnN0cmVhbV9maWxlc2V0LCB4aWQsCi0JCQkJCQkJCSAg IGNvbW1pdF9kYXRhLmNvbW1pdF9sc24pOworCQkJCQkJCQkgICBjb21taXRfZGF0YS5jb21taXRf bHNuLCBjb21taXRfZGF0YS5jb21taXR0aW1lKTsKIAogCQkJYXBwbHlfaGFuZGxlX2NvbW1pdF9p bnRlcm5hbCgmY29tbWl0X2RhdGEpOwogCkBAIC0zNDQ2LDcgKzM1NzgsNyBAQCBVcGRhdGVXb3Jr ZXJTdGF0cyhYTG9nUmVjUHRyIGxhc3RfbHNuLCBUaW1lc3RhbXBUeiBzZW5kX3RpbWUsIGJvb2wg cmVwbHkpCiAgKiBBcHBseSBtYWluIGxvb3AuCiAgKi8KIHN0YXRpYyB2b2lkCi1Mb2dpY2FsUmVw QXBwbHlMb29wKFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKK0xvZ2ljYWxSZXBBcHBseUxvb3Ao dm9pZCkKIHsKIAlUaW1lc3RhbXBUeiBsYXN0X3JlY3ZfdGltZXN0YW1wID0gR2V0Q3VycmVudFRp bWVzdGFtcCgpOwogCWJvb2wJCXBpbmdfc2VudCA9IGZhbHNlOwpAQCAtMzU2Nyw3ICszNjk5LDcg QEAgTG9naWNhbFJlcEFwcGx5TG9vcChYTG9nUmVjUHRyIGxhc3RfcmVjZWl2ZWQpCiAJCQkJCQlp ZiAobGFzdF9yZWNlaXZlZCA8IGVuZF9sc24pCiAJCQkJCQkJbGFzdF9yZWNlaXZlZCA9IGVuZF9s c247CiAKLQkJCQkJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgcmVwbHlfcmVxdWVzdGVk LCBmYWxzZSk7CisJCQkJCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQsIHJlcGx5X3JlcXVl c3RlZCwgZmFsc2UsIGZhbHNlKTsKIAkJCQkJCVVwZGF0ZVdvcmtlclN0YXRzKGxhc3RfcmVjZWl2 ZWQsIHRpbWVzdGFtcCwgdHJ1ZSk7CiAJCQkJCX0KIAkJCQkJLyogb3RoZXIgbWVzc2FnZSB0eXBl cyBhcmUgcHVycG9zZWZ1bGx5IGlnbm9yZWQgKi8KQEAgLTM1ODAsNyArMzcxMiw3IEBAIExvZ2lj YWxSZXBBcHBseUxvb3AoWExvZ1JlY1B0ciBsYXN0X3JlY2VpdmVkKQogCQl9CiAKIAkJLyogY29u ZmlybSBhbGwgd3JpdGVzIHNvIGZhciAqLwotCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQs IGZhbHNlLCBmYWxzZSk7CisJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgZmFsc2UsIGZh bHNlLCBmYWxzZSk7CiAKIAkJaWYgKCFpbl9yZW1vdGVfdHJhbnNhY3Rpb24gJiYgIWluX3N0cmVh bWVkX3RyYW5zYWN0aW9uKQogCQl7CkBAIC0zNjc3LDcgKzM4MDksNyBAQCBMb2dpY2FsUmVwQXBw bHlMb29wKFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKIAkJCQl9CiAJCQl9CiAKLQkJCXNlbmRf ZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgcmVxdWVzdFJlcGx5LCByZXF1ZXN0UmVwbHkpOworCQkJ c2VuZF9mZWVkYmFjayhsYXN0X3JlY2VpdmVkLCByZXF1ZXN0UmVwbHksIHJlcXVlc3RSZXBseSwg ZmFsc2UpOwogCiAJCQkvKgogCQkJICogRm9yY2UgcmVwb3J0aW5nIHRvIGVuc3VyZSBsb25nIGlk bGUgcGVyaW9kcyBkb24ndCBsZWFkIHRvCkBAIC0zNzA3LDcgKzM4MzksNyBAQCBMb2dpY2FsUmVw QXBwbHlMb29wKFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKICAqIHRvIHNlbmQgYSByZXNwb25z ZSB0byBhdm9pZCB0aW1lb3V0cy4KICAqLwogc3RhdGljIHZvaWQKLXNlbmRfZmVlZGJhY2soWExv Z1JlY1B0ciByZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSkKK3NlbmRfZmVl ZGJhY2soWExvZ1JlY1B0ciByZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSwg Ym9vbCBpbl9kZWxheWluZ19hcHBseSkKIHsKIAlzdGF0aWMgU3RyaW5nSW5mbyByZXBseV9tZXNz YWdlID0gTlVMTDsKIAlzdGF0aWMgVGltZXN0YW1wVHogc2VuZF90aW1lID0gMDsKQEAgLTM3Mzcs OCArMzg2OSwxNSBAQCBzZW5kX2ZlZWRiYWNrKFhMb2dSZWNQdHIgcmVjdnBvcywgYm9vbCBmb3Jj ZSwgYm9vbCByZXF1ZXN0UmVwbHkpCiAJLyoKIAkgKiBObyBvdXRzdGFuZGluZyB0cmFuc2FjdGlv bnMgdG8gZmx1c2gsIHdlIGNhbiByZXBvcnQgdGhlIGxhdGVzdCByZWNlaXZlZAogCSAqIHBvc2l0 aW9uLiBUaGlzIGlzIGltcG9ydGFudCBmb3Igc3luY2hyb25vdXMgcmVwbGljYXRpb24uCisJICoK KwkgKiBEdXJpbmcgdGhlIGRlbGF5IG9mIHRpbWUtZGVsYXllZCByZXBsaWNhdGlvbiwgZG8gbm90 IHRlbGwgdGhlIHB1Ymxpc2hlcgorCSAqIHRoYXQgdGhlIHJlY2VpdmVkIGxhdGVzdCBMU04gaXMg YWxyZWFkeSBhcHBsaWVkIGFuZCBmbHVzaGVkIGF0IHRoaXMKKwkgKiBzdGFnZSwgc2luY2Ugd2Ug ZG9uJ3QgYXBwbHkgdGhlIHRyYW5zYWN0aW9uIHlldC4gSWYgd2UgZG8gc28sIGl0IGxlYWRzCisJ ICogdG8gYSB3cm9uZyBhc3N1bXB0aW9uIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gcHJvZ3Jlc3Mg b24gdGhlIHB1Ymxpc2hlcgorCSAqIHNpZGUuIEhlcmUsIHdlIGp1c3Qgc2VuZCBhIGZlZWRiYWNr IG1lc3NhZ2UgdG8gYXZvaWQgcHVibGlzaGVyJ3MKKwkgKiB0aW1lb3V0IGR1cmluZyB0aGUgZGVs YXkuCiAJICovCi0JaWYgKCFoYXZlX3BlbmRpbmdfdHhlcykKKwlpZiAoIWhhdmVfcGVuZGluZ190 eGVzICYmICFpbl9kZWxheWluZ19hcHBseSkKIAkJZmx1c2hwb3MgPSB3cml0ZXBvcyA9IHJlY3Zw b3M7CiAKIAlpZiAod3JpdGVwb3MgPCBsYXN0X3dyaXRlcG9zKQpAQCAtNDM1NCwxMSArNDQ5Mywx MSBAQCBzdGFydF90YWJsZV9zeW5jKFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcywgY2hhciAq Km15c2xvdG5hbWUpCiAgKiBvZiBzeXN0ZW0gcmVzb3VyY2UgZXJyb3IgYW5kIGFyZSBub3QgcmVw ZWF0YWJsZS4KICAqLwogc3RhdGljIHZvaWQKLXN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2lu X3N0YXJ0cG9zKQorc3RhcnRfYXBwbHkodm9pZCkKIHsKIAlQR19UUlkoKTsKIAl7Ci0JCUxvZ2lj YWxSZXBBcHBseUxvb3Aob3JpZ2luX3N0YXJ0cG9zKTsKKwkJTG9naWNhbFJlcEFwcGx5TG9vcCgp OwogCX0KIAlQR19DQVRDSCgpOwogCXsKQEAgLTQ2NDUsNyArNDc4NCw4IEBAIEFwcGx5V29ya2Vy TWFpbihEYXR1bSBtYWluX2FyZykKIAl9CiAKIAkvKiBSdW4gdGhlIG1haW4gbG9vcC4gKi8KLQlz dGFydF9hcHBseShvcmlnaW5fc3RhcnRwb3MpOworCWxhc3RfcmVjZWl2ZWQgPSBvcmlnaW5fc3Rh cnRwb3M7CisJc3RhcnRfYXBwbHkoKTsKIAogCXByb2NfZXhpdCgwKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYwppbmRleCA5MjhjMzMwODk3Li40MjJlNmFkMGZhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jCkBAIC0yNDMxLDYgKzI0MzEsMzUgQEAgaW50ZXJ2YWxfY21wX2ludGVy bmFsKGNvbnN0IEludGVydmFsICppbnRlcnZhbDEsIGNvbnN0IEludGVydmFsICppbnRlcnZhbDIp CiAJcmV0dXJuIGludDEyOF9jb21wYXJlKHNwYW4xLCBzcGFuMik7CiB9CiAKKy8qCisgKiBSZXR1 cm5zIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwu CisgKi8KK2ludDY0CitpbnRlcnZhbDJtcyhjb25zdCBJbnRlcnZhbCAqaW50ZXJ2YWwpCit7CisJ aW50NjQJCWRheXM7CisJaW50NjQJCW1zOworCWludDY0CQlyZXN1bHQ7CisKKwlkYXlzID0gaW50 ZXJ2YWwtPm1vbnRoICogSU5UNjRDT05TVCgzMCk7CisJZGF5cyArPSBpbnRlcnZhbC0+ZGF5Owor CisJLyogRGV0ZWN0IHdoZXRoZXIgdGhlIHZhbHVlIG9mIGludGVydmFsIGNhbiBjYXVzZSBhbiBv dmVyZmxvdyAqLworCWlmIChwZ19tdWxfczY0X292ZXJmbG93KGRheXMsIE1TRUNTX1BFUl9EQVks ICZyZXN1bHQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklD X1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikp OworCisJLyogQWRkcyBwb3J0aW9uIHRpbWUgKGluIG1zKSB0byB0aGUgcHJldmlvdXMgcmVzdWx0 ICovCisJbXMgPSBpbnRlcnZhbC0+dGltZSAvIElOVDY0Q09OU1QoMTAwMCk7CisJaWYgKHBnX2Fk ZF9zNjRfb3ZlcmZsb3cocmVzdWx0LCBtcywgJnJlc3VsdCkpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJt c2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiBEYXR1 bQogaW50ZXJ2YWxfZXEoUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDUyN2M3 NjUxYWIuLjdmZmJhYjA5MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDQ5NCw2ICs0NDk0LDcgQEAgZ2V0 U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3Vic3luY2NvbW1pdDsKIAlp bnQJCQlpX3N1YnB1YmxpY2F0aW9uczsKIAlpbnQJCQlpX3N1YmJpbmFyeTsKKwlpbnQJCQlpX3N1 Ym1pbmFwcGx5ZGVsYXk7CiAJaW50CQkJaSwKIAkJCQludHVwczsKIApAQCAtNDU0Niw5ICs0NTQ3 LDE0IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJCSAgTE9HSUNBTFJF UF9UV09QSEFTRV9TVEFURV9ESVNBQkxFRCk7CiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxNjAwMDApCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHMuc3Vib3JpZ2luXG4i KTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICIgcy5zdWJvcmlnaW4s XG4iCisJCQkJCQkJICIgcy5zdWJtaW5hcHBseWRlbGF5XG4iKTsKIAllbHNlCi0JCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiICclcycgQVMgc3Vib3JpZ2luXG4iLCBMT0dJQ0FMUkVQX09SSUdJ Tl9BTlkpOworCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgJyVzJyBBUyBzdWJvcmln aW4sXG4iLCBMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiAwIEFTIHN1Ym1pbmFwcGx5ZGVsYXlcbiIpOworCX0KIAogCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iCkBAIC00NTc2 LDYgKzQ1ODIsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9zdWJ0d29w aGFzZXN0YXRlID0gUFFmbnVtYmVyKHJlcywgInN1YnR3b3BoYXNlc3RhdGUiKTsKIAlpX3N1YmRp c2FibGVvbmVyciA9IFBRZm51bWJlcihyZXMsICJzdWJkaXNhYmxlb25lcnIiKTsKIAlpX3N1Ym9y aWdpbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKKwlpX3N1Ym1pbmFwcGx5ZGVsYXkg PSBQUWZudW1iZXIocmVzLCAic3VibWluYXBwbHlkZWxheSIpOwogCiAJc3ViaW5mbyA9IHBnX21h bGxvYyhudHVwcyAqIHNpemVvZihTdWJzY3JpcHRpb25JbmZvKSk7CiAKQEAgLTQ2MDYsNiArNDYx Myw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJc3ViaW5mb1tpXS5zdWJk aXNhYmxlb25lcnIgPQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmRpc2Fi bGVvbmVycikpOwogCQlzdWJpbmZvW2ldLnN1Ym9yaWdpbiA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV9zdWJvcmlnaW4pKTsKKwkJc3ViaW5mb1tpXS5zdWJtaW5hcHBseWRlbGF5ID0K KwkJCXN0cnRvaTY0KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym1pbmFwcGx5ZGVsYXkpLCBOVUxM LCAxMCk7CiAKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNl bGVjdER1bXBhYmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC00Njg3LDYg KzQ2OTYsOSBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlw dGlvbkluZm8gKnN1YmluZm8pCiAJaWYgKHN0cmNtcChzdWJpbmZvLT5zdWJzeW5jY29tbWl0LCAi b2ZmIikgIT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIHN5bmNocm9ub3VzX2Nv bW1pdCA9ICVzIiwgZm10SWQoc3ViaW5mby0+c3Vic3luY2NvbW1pdCkpOwogCisJaWYgKHN1Ymlu Zm8tPnN1Ym1pbmFwcGx5ZGVsYXkgPiAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwg bWluX2FwcGx5X2RlbGF5ID0gJyIgSU5UNjRfRk9STUFUICIgbXMnIiwgc3ViaW5mby0+c3VibWlu YXBwbHlkZWxheSk7CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKIAog CWlmIChzdWJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKaW5kZXggZTdjYmQ4ZDdlZC4uZTI1MjVmNzBhYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02NjEs NiArNjYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpz dWJkaXNhYmxlb25lcnI7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1YnN5bmNj b21taXQ7CisJaW50NjQJCXN1Ym1pbmFwcGx5ZGVsYXk7CiAJY2hhcgkgICAqc3VicHVibGljYXRp b25zOwogfSBTdWJzY3JpcHRpb25JbmZvOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM4YTBiYjdiM2EuLjhhMjcw NjNiZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCkBAIC02NDcyLDcgKzY0NzIsNyBAQCBkZXNjcmliZVN1YnNjcmlwdGlv bnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJlczsK IAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl fTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTY1MjcsMTAgKzY1Mjcs MTMgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVy Ym9zZSkKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAogCQkJCQkJ CSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOwogCisJCS8qIE9yaWdpbiBhbmQg bWluX2FwcGx5X2RlbGF5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTYgYW5kIGhpZ2hlciAqLwog CQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAotCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRf bm9vcCgiT3JpZ2luIikpOworCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIgorCQkJ CQkJCSAgIiwgc3VibWluYXBwbHlkZWxheSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIk9yaWdpbiIpLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNaW4gYXBwbHkgZGVsYXkg KG1zKSIpKTsKIAogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiLCAgc3Vic3lu Y2NvbW1pdCBBUyBcIiVzXCJcbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA1ZTE4ODJlYWVhLi5lOGI5 YTQzYTQ3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBwc3FsX2NvbXBs ZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9X SVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBT RVQgKCAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBN YXRjaEFueSkgJiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJp bmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsICJzbG90X25hbWUiLAorCQlDT01Q TEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJtaW5fYXBwbHlfZGVsYXki LCAib3JpZ2luIiwgInNsb3RfbmFtZSIsCiAJCQkJCSAgInN0cmVhbWluZyIsICJzeW5jaHJvbm91 c19jb21taXQiKTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNLSVAgKCAqLwogCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkgJiYg VGFpbE1hdGNoZXMoIlNLSVAiLCAiKCIpKQpAQCAtMzI2OCw3ICszMjY4LDcgQEAgcHNxbF9jb21w bGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkvKiBDb21wbGV0 ZSAiQ1JFQVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICovCiAJZWxz ZSBpZiAoSGVhZE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iKSAmJiBUYWlsTWF0Y2hl cygiV0lUSCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0IiwgImNv cHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJyb3IiLCAiZW5h YmxlZCIsICJvcmlnaW4iLCAic2xvdF9uYW1lIiwKKwkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIs ICJlbmFibGVkIiwgIm1pbl9hcHBseV9kZWxheSIsICJvcmlnaW4iLCAic2xvdF9uYW1lIiwKIAkJ CQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIAog LyogQ1JFQVRFIFRSSUdHRVIgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNv IHVzZSBUYWlsTWF0Y2hlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5k ZXggYjBmMmExNzA1ZC4uMDc4NDk1Y2JmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5oCkBAIC03MCw2ICs3MCw4IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vi c2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJWExvZ1Jl Y1B0cglzdWJza2lwbHNuOwkJLyogQWxsIGNoYW5nZXMgZmluaXNoZWQgYXQgdGhpcyBMU04gYXJl CiAJCQkJCQkJCSAqIHNraXBwZWQgKi8KIAorCWludDY0CQlzdWJtaW5hcHBseWRlbGF5OwkvKiBS ZXBsaWNhdGlvbiBhcHBseSBkZWxheSAqLworCiAJTmFtZURhdGEJc3VibmFtZTsJCS8qIE5hbWUg b2YgdGhlIHN1YnNjcmlwdGlvbiAqLwogCiAJT2lkCQkJc3Vib3duZXIgQktJX0xPT0tVUChwZ19h dXRoaWQpOyAvKiBPd25lciBvZiB0aGUgc3Vic2NyaXB0aW9uICovCkBAIC0xMjAsNiArMTIyLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCSAqIGluICovCiAJWExvZ1Jl Y1B0cglza2lwbHNuOwkJLyogQWxsIGNoYW5nZXMgZmluaXNoZWQgYXQgdGhpcyBMU04gYXJlCiAJ CQkJCQkJCSAqIHNraXBwZWQgKi8KKwlpbnQ2NAkJbWluYXBwbHlkZWxheTsJLyogUmVwbGljYXRp b24gYXBwbHkgZGVsYXkgKi8KIAljaGFyCSAgICpuYW1lOwkJCS8qIE5hbWUgb2YgdGhlIHN1YnNj cmlwdGlvbiAqLwogCU9pZAkJCW93bmVyOwkJCS8qIE9pZCBvZiB0aGUgc3Vic2NyaXB0aW9uIG93 bmVyICovCiAJYm9vbAkJZW5hYmxlZDsJCS8qIEluZGljYXRlcyBpZiB0aGUgc3Vic2NyaXB0aW9u IGlzIGVuYWJsZWQgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2RhdGF0eXBlL3RpbWVzdGFt cC5oIGIvc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgKaW5kZXggMjFhMzdlMjFlOS4u OGIzNjhhZjI5OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgK KysrIGIvc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgKQEAgLTEyNyw2ICsxMjcsOCBA QCBzdHJ1Y3QgcGdfaXRtX2luCiAjZGVmaW5lIFNFQ1NfUEVSX01JTlVURSA2MAogI2RlZmluZSBN SU5TX1BFUl9IT1VSCTYwCiAKKyNkZWZpbmUgTVNFQ1NfUEVSX0RBWQlJTlQ2NENPTlNUKDg2NDAw MDAwKQorCiAjZGVmaW5lIFVTRUNTX1BFUl9EQVkJSU5UNjRDT05TVCg4NjQwMDAwMDAwMCkKICNk ZWZpbmUgVVNFQ1NfUEVSX0hPVVIJSU5UNjRDT05TVCgzNjAwMDAwMDAwKQogI2RlZmluZSBVU0VD U19QRVJfTUlOVVRFIElOVDY0Q09OU1QoNjAwMDAwMDApCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IGRiODkxZWVhOGEuLjRlZjEzMmQyNDMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0yNTUsNyArMjU1LDcgQEAg ZXh0ZXJuIHZvaWQgc3RyZWFtX3N0b3BfaW50ZXJuYWwoVHJhbnNhY3Rpb25JZCB4aWQpOwogCiAv KiBDb21tb24gc3RyZWFtaW5nIGZ1bmN0aW9uIHRvIGFwcGx5IGFsbCB0aGUgc3Bvb2xlZCBtZXNz YWdlcyAqLwogZXh0ZXJuIHZvaWQgYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhGaWxlU2V0ICpzdHJl YW1fZmlsZXNldCwgVHJhbnNhY3Rpb25JZCB4aWQsCi0JCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNu KTsKKwkJCQkJCQkJICAgWExvZ1JlY1B0ciBsc24sIFRpbWVzdGFtcFR6IGZpbmlzaF90cyk7CiAK IGV4dGVybiB2b2lkIGFwcGx5X2Rpc3BhdGNoKFN0cmluZ0luZm8gcyk7CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL3RpbWVzdGFtcC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0 YW1wLmgKaW5kZXggNDJmODAyYmI5ZC4uNTM0MDUxZmUxMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvdXRpbHMvdGltZXN0YW1wLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmgK QEAgLTEwMiw2ICsxMDIsOCBAQCBleHRlcm4gYm9vbCBUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVk cyhUaW1lc3RhbXBUeiBzdGFydF90aW1lLAogCQkJCQkJCQkJICAgVGltZXN0YW1wVHogc3RvcF90 aW1lLAogCQkJCQkJCQkJICAgaW50IG1zZWMpOwogCitleHRlcm4gaW50NjQgaW50ZXJ2YWwybXMo Y29uc3QgSW50ZXJ2YWwgKmludGVydmFsKTsKKwogZXh0ZXJuIFRpbWVzdGFtcFR6IHRpbWVfdF90 b190aW1lc3RhbXB0eihwZ190aW1lX3QgdG0pOwogZXh0ZXJuIHBnX3RpbWVfdCB0aW1lc3RhbXB0 el90b190aW1lX3QoVGltZXN0YW1wVHogdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dAppbmRleCA0ZTVjYjBkM2E5Li5kYmYwODAzNTY4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMTQsMTggKzExNCwxOCBA QCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrIHJl Z3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBub25lICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyBy ZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTEzNSwxMCArMTM1LDEwIEBAIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9S OiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJm b29iYXIiIGluIGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRl bGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAw IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w CiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJ Q0FUSU9OIHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTU1 LDEwICsxNTUsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl cjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAg fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAg MCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAw LzEyMzQ1CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0xNjcsMTAgKzE2 NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5P TkUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8w Jyk7CiBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5 IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAg ICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0MiB8IDAvMAogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIwMiwxMCArMjAyLDEwIEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hyb25vdXNf Y29tbWl0ID0gZm9vYmFyKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJz eW5jaHJvbm91c19jb21taXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1ZXM6IGxv Y2FsLCByZW1vdGVfd3JpdGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8 IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWJf Zm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVz dHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IGxvY2FsICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogLS0g cmVuYW1lIGJhY2sgdG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTIzOSwxOSArMjM5LDE5IEBA IENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg TWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAg ICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1z KSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJv dykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjYzLDI3ICsyNjMs MjcgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAg ICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBk ZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAg MCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3Ry ZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0t IGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMjk4LDEwICsyOTgsMTAgQEAg QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1 YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFs c2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2Ny aXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlv biAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBv ZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHVi MSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAK IC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMTYsMTAgKzMx NiwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlw dGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEs IHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVs YXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK ICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMzU1LDEw ICszNTUsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24u CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS1mYWlsIC0gYWx0ZXIgb2YgdHdv X3BoYXNlIG9wdGlvbiBub3Qgc3VwcG9ydGVkLgpAQCAtMzY3LDEwICszNjcsMTAgQEAgRVJST1I6 ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogInR3b19waGFzZSIKIC0tIGJ1 dCBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJsZWQKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0cnVlKTsKIFxkUnMrCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAg IHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAg ICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zODAsMTAgKzM4MCwxMCBAQCBDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBs eSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAg ICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zOTYsMjAgKzM5Niw2MSBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAo bXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9v bl9lcnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAg ICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIGZhaWwgLS0gbWluX2FwcGx5X2Rl bGF5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2RlbGF5 ID0gZm9vKTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZXJ2YWw6 ICJmb28iCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAtMSk7CitFUlJPUjogIC0xIG1zIGlzIG91 dHNpZGUgdGhlIHZhbGlkIHJhbmdlIGZvciBwYXJhbWV0ZXIgIm1pbl9hcHBseV9kZWxheSIgKDAg Li4gMjE0NzQ4MzY0NykKKy0tIGZhaWwgLSB1dGlsaXppbmcgc3RyZWFtaW5nID0gcGFyYWxsZWwg d2l0aCB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZC4KK0NSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0 cmVhbWluZyA9IHBhcmFsbGVsLCBtaW5fYXBwbHlfZGVsYXkgPSAnMSBkYXknKTsKK0VSUk9SOiAg bWluX2FwcGx5X2RlbGF5ID4gMCBhbmQgc3RyZWFtaW5nID0gcGFyYWxsZWwgYXJlIG11dHVhbGx5 IGV4Y2x1c2l2ZSBvcHRpb25zCistLSBzdWNjZXNzIC0tIHZhbHVlIHdpdGhvdXQgdW5pdCBpcyB0 YWtlbiBhcyBtaWxsaXNlY29uZHMKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9IDEyMyk7CitXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0 aGUgc3Vic2NyaXB0aW9uLgorXGRScysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAg ICAgICAgICAgICAxMjMgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKygxIHJvdykKKworLS0gc3VjY2VzcyAtLSBpbnRlcnZhbCBpcyBjb252 ZXJ0ZWQgaW50byBtcyBhbmQgc3RvcmVkIGFzIGludGVnZXIKK0FMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7Citc ZFJzKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAo bXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAxNjA1NTAwMCB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEg cm93KQorCistLSBmYWlsIC0gYWx0ZXIgc3Vic2NyaXB0aW9uIHdpdGggc3RyZWFtaW5nID0gcGFy YWxsZWwgc2hvdWxkIGZhaWwgd2hlbiB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgc2V0Lgor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFs bGVsKTsKK0VSUk9SOiAgY2Fubm90IGVuYWJsZSBzdHJlYW1pbmcgPSBwYXJhbGxlbCBtb2RlIGZv ciBzdWJzY3JpcHRpb24gd2l0aCBtaW5fYXBwbHlfZGVsYXkKK0FMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIGZhaWwgLSBhbHRlciBzdWJzY3JpcHRpb24gd2l0aCBtaW5f YXBwbHlfZGVsYXkgc2hvdWxkIGZhaWwgd2hlbiBzdHJlYW1pbmcgPSBwYXJhbGxlbCBpcyBzZXQu CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdh cyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxp Y2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVu YWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgorQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1pbl9hcHBseV9kZWxheSA9IDEy Myk7CitFUlJPUjogIGNhbm5vdCBlbmFibGUgbWluX2FwcGx5X2RlbGF5IGZvciBzdWJzY3JpcHRp b24gaW4gc3RyZWFtaW5nID0gcGFyYWxsZWwgbW9kZQogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggNWYyN2I3ZDc3Ni4uNGI5MGI4NTcwMiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yNzksNiArMjc5LDMxIEBAIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1 ZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tIGZhaWwgLS0g bWluX2FwcGx5X2RlbGF5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWlu X2FwcGx5X2RlbGF5ID0gZm9vKTsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9IC0xKTsKKy0tIGZh aWwgLSB1dGlsaXppbmcgc3RyZWFtaW5nID0gcGFyYWxsZWwgd2l0aCB0aW1lIGRlbGF5ZWQgcmVw bGljYXRpb24gaXMgbm90IHN1cHBvcnRlZC4KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHBhcmFsbGVsLCBt aW5fYXBwbHlfZGVsYXkgPSAnMSBkYXknKTsKKworLS0gc3VjY2VzcyAtLSB2YWx1ZSB3aXRob3V0 IHVuaXQgaXMgdGFrZW4gYXMgbWlsbGlzZWNvbmRzCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAx MjMpOworXGRScysKKworLS0gc3VjY2VzcyAtLSBpbnRlcnZhbCBpcyBjb252ZXJ0ZWQgaW50byBt cyBhbmQgc3RvcmVkIGFzIGludGVnZXIKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CitcZFJzKworCistLSBm YWlsIC0gYWx0ZXIgc3Vic2NyaXB0aW9uIHdpdGggc3RyZWFtaW5nID0gcGFyYWxsZWwgc2hvdWxk IGZhaWwgd2hlbiB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgc2V0LgorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKworLS0gZmFpbCAtIGFsdGVyIHN1YnNj cmlwdGlvbiB3aXRoIG1pbl9hcHBseV9kZWxheSBzaG91bGQgZmFpbCB3aGVuIHN0cmVhbWluZyA9 IHBhcmFsbGVsIGlzIHNldC4KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAxMjMpOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworCiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1Ag Uk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWls ZAppbmRleCAzZGIwZmRmZDk2Li5hMTg2ODc2ZWI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkCkBAIC0zOCw2ICszOCw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAyOV9vbl9lcnJvci5w bCcsCiAgICAgICAndC8wMzBfb3JpZ2luLnBsJywKICAgICAgICd0LzAzMV9jb2x1bW5fbGlzdC5w bCcsCisgICAgICAndC8wMzJfYXBwbHlfZGVsYXkucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwn LAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJf YXBwbHlfZGVsYXkucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXku cGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjU0NTllM2RlYwotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5w bApAQCAtMCwwICsxLDE4MiBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMywgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5 Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkg JGxvZ19sb2NhdGlvbiA9IDA7CisKKyMgQ29uZmlybSB0aGUgdGltZS1kZWxheWVkIHJlcGxpY2F0 aW9uIGhhcyBiZWVuIGVmZmVjdGl2ZSBmcm9tIHRoZSBzZXJ2ZXIgbG9nCisjIG1lc3NhZ2Ugd2hl cmUgdGhlIGFwcGx5IHdvcmtlciBlbWl0cyBmb3IgYXBwbHlpbmcgZGVsYXkuIFdoZW4gbmVjZXNz YXJ5LAorIyB2ZXJpZmllcyB0aGF0IHRoZSBjdXJyZW50IHdvcmtlcidzIGRlbGF5ZWQgdGltZSBp cyBzdWZmaWNpZW50bHkgYmlnZ2VyIHRoYW4KKyMgdGhlIGV4cGVjdGVkIHZhbHVlLCBpbiBvcmRl ciB0byBjaGVjayBhbnkgdXBkYXRlIG9mIHRoZSBtaW5fYXBwbHlfZGVsYXkuCitzdWIgY2hlY2tf YXBwbHlfZGVsYXlfbG9nCit7CisJbXkgKCRub2RlX3N1YnNjcmliZXIsICRtZXNzYWdlLCAkZXhw ZWN0ZWQpID0gQF87CisJJGV4cGVjdGVkID0gMCB1bmxlc3MgZGVmaW5lZCAkZXhwZWN0ZWQ7CisK KwlteSAkb2xkX2xvZ19sb2NhdGlvbiA9ICRsb2dfbG9jYXRpb247CisKKwkkbG9nX2xvY2F0aW9u ID0gJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3JfbG9nKHFyLyRtZXNzYWdlLywgJGxvZ19sb2Nh dGlvbik7CisKKwljbXBfb2soJGxvZ19sb2NhdGlvbiwgJz4nLCAkb2xkX2xvZ19sb2NhdGlvbiwK KwkJImxvZ2ZpbGUgY29udGFpbnMgdHJpZ2dlcmVkIGxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkg ZGVsYXkiCisJKTsKKworCWlmICgkZXhwZWN0ZWQgPiAwKQorCXsKKwkJIyBHZXQgdGhlIGRlbGF5 IHRpbWUgaW4gdGhlIHNlcnZlciBsb2cKKwkJbXkgJGNvbnRlbnRzID0gc2x1cnBfZmlsZSgkbm9k ZV9zdWJzY3JpYmVyLT5sb2dmaWxlLCAkb2xkX2xvZ19sb2NhdGlvbik7CisJCSRjb250ZW50cyA9 fgorCQlxci8kbWVzc2FnZTogKFxkKykgbXMvCisJCW9yIGRpZSAiY291bGQgbm90IGdldCBkZWxh eWVkIHRpbWUiOworCQlteSAkbG9nZ2VkX2RlbGF5ID0gJDE7CisKKwkJIyBJcyBpdCBsYXJnZXIg dGhhbiBleHBlY3RlZD8KKwkJY21wX29rKCRsb2dnZWRfZGVsYXksICc+JywgJGV4cGVjdGVkLAor CQkJIlRoZSB3YWl0IHRpbWUgb2YgdGhlIGFwcGx5IHdvcmtlciBpcyBsb25nIGVub3VnaCBleHBl Y3RlZGx5IgorCQkpOworCX0KK30KKworc3ViIGNoZWNrX2FwcGx5X2RlbGF5X3RpbWUKK3sKKwlt eSAoJG5vZGVfcHVibGlzaGVyLCAkbm9kZV9zdWJzY3JpYmVyLCAkcHJpbWFyeV9rZXksICRleHBl Y3RlZF9kaWZmcykgPSBAXzsKKworCW15ICRpbnNlcnRlZF90aW1lX29uX3B1YiA9ICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgZXh0cmFjdChlcG9j aCBmcm9tIGMpIEZST00gdGVzdF90YWIgV0hFUkUgYSA9ICRwcmltYXJ5X2tleTsKKwldKTsKKwor CW15ICRpbnNlcnRlZF90aW1lX29uX3N1YiA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIGV4dHJhY3QoZXBvY2ggZnJvbSBjKSBGUk9NIHRlc3Rf dGFiIFdIRVJFIGEgPSAkcHJpbWFyeV9rZXk7CisJXSk7CisKKwljbXBfb2soJGluc2VydGVkX3Rp bWVfb25fc3ViIC0gJGluc2VydGVkX3RpbWVfb25fcHViLCAnPicsICRleHBlY3RlZF9kaWZmcywK KwkJIlRoZSB0dXBsZSBvbiB0aGUgc3Vic2NyaWJlciB3YXMgbW9kaWZpZWQgbGF0ZXIgdGhhbiB0 aGUgcHVibGlzaGVyIik7Cit9CisKKyMgQ3JlYXRlIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9w dWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOwor JG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRu b2RlX3B1Ymxpc2hlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJJ2xvZ2ljYWxf ZGVjb2Rpbmdfd29ya19tZW0gPSA2NGtCJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisj IENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmlu aXQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwki bG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnMiIpOworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisK KyMgQ3JlYXRlIHNvbWUgcHJlZXhpc3RpbmcgY29udGVudCBvbiBwdWJsaXNoZXIKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZXN0X3RhYiAo YSBpbnQgcHJpbWFyeSBrZXksIGIgdmFyY2hhciwgYyB0aW1lc3RhbXB0eiBERUZBVUxUIG5vdygp KSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElO VE8gdGVzdF90YWIgVkFMVUVTICgxLCAnZm9vJyksICgyLCAnYmFyJykiKTsKKworIyBTZXR1cCBz dHJ1Y3R1cmUgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZXN0X3RhYiAoYSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4 dCwgYyB0aW1lc3RhbXB0eiBERUZBVUxUIG5vdygpLCBkIGJpZ2ludCBERUZBVUxUIDk5OSkiCisp OworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9 ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBUaGUg Y29sdW1uIGMgbXVzdCBub3QgYmUgcHVibGlzaGVkIGJlY2F1c2Ugd2Ugd2FudCB0byBjb21wYXJl IHRoZSB0aW1lCisjIGRpZmZlcmVuY2UuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgVEFCTEUgdGVzdF90YWIg KGEsIGIpIik7CisKK215ICRhcHBuYW1lID0gJ3RhcF9zdWInOworJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05O RUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIgYXBwbGljYXRpb25fbmFtZT0kYXBwbmFtZScgUFVC TElDQVRJT04gdGFwX3B1YiBXSVRIIChzdHJlYW1pbmcgPSBvbiwgbWluX2FwcGx5X2RlbGF5ID0g JzNzJykiCispOworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJGFwcG5hbWUpOworCisjIENoZWNrIGxvZyBzdGFydGluZyBub3cgZm9yIGxvZ2ljYWwgcmVw bGljYXRpb24gYXBwbHkgZGVsYXkKKyRsb2dfbG9jYXRpb24gPSAtcyAkbm9kZV9zdWJzY3JpYmVy LT5sb2dmaWxlOworCitteSAkcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0ZXN0 X3RhYiIpOworaXMoJHJlc3VsdCwgcXEoMnwxfDIpLCAnY2hlY2sgaW5pdGlhbCBkYXRhIHdhcyBj b3BpZWQgdG8gc3Vic2NyaWJlcicpOworCisjIE5ldyByb3cgdG8gdHJpZ2dlciBhcHBseSBkZWxh eQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGVzdF90YWIgVkFMVUVTICgzLCAnYmF6JykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlc3RfdGFiIFZBTFVFUyAoNCwgJ2FiYycpIik7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 ZXN0X3RhYiBWQUxVRVMgKDUsICdkZWYnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJGFwcG5hbWUpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSB0ZXN0X3RhYiIpOworaXMoJHJlc3VsdCwgcXEoNXwxfDUpLCAnY2hlY2sgaWYgdGhlIG5ldyBy b3dzIHdlcmUgYXBwbGllZCB0byBzdWJzY3JpYmVyJyk7CisKK2NoZWNrX2FwcGx5X2RlbGF5X2xv Zygkbm9kZV9zdWJzY3JpYmVyLCAibG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSBkZWxheSIpOwor Y2hlY2tfYXBwbHlfZGVsYXlfdGltZSgkbm9kZV9wdWJsaXNoZXIsICRub2RlX3N1YnNjcmliZXIs ICc1JywgJzMnKTsKKworIyBSZWR1Y2UgdGhlIGFtb3VudHMgb2Ygd3JpdGVzIGZvciBzcG9vbGlu ZyBmaWxlCiskbm9kZV9wdWJsaXNoZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlcy5jb25mJywKKwkn bG9naWNhbF9kZWNvZGluZ19tb2RlID0gaW1tZWRpYXRlJyk7Ciskbm9kZV9wdWJsaXNoZXItPnJl bG9hZDsKKworIyBUZXN0IHN0cmVhbWVkIHRyYW5zYWN0aW9uIGJ5IGluc2VydCwgdXBkYXRlIGFu ZCBkZWxldGUgZW5vdWdoIHJvd3MgdG8gZXhjZWVkCisjIDY0a0IgbGltaXQuCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0X3RhYiBTRUxF Q1QgaSwgbWQ1KGk6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDYsIDgpIHMoaSk7Iik7CisK KyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgkYXBwbmFtZSk7CisKKyRyZXN1bHQg PQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRlc3RfdGFiIik7CitpcygkcmVzdWx0LCBxcSg4 fDF8OCksICdjaGVjayBpZiB0aGUgbmV3IHJvd3Mgd2VyZSBhcHBsaWVkIHRvIHN1YnNjcmliZXIn KTsKKworY2hlY2tfYXBwbHlfZGVsYXlfbG9nKCRub2RlX3N1YnNjcmliZXIsICJsb2dpY2FsIHJl cGxpY2F0aW9uIGFwcGx5IGRlbGF5Iik7CitjaGVja19hcHBseV9kZWxheV90aW1lKCRub2RlX3B1 Ymxpc2hlciwgJG5vZGVfc3Vic2NyaWJlciwgJzgnLCAnMycpOworCisjIFRlc3Qgd2hldGhlciBB TFRFUiBTVUJTQ1JJUFRJT04gY2hhbmdlcyB0aGUgZGVsYXllZCB0aW1lIG9mIHRoZSBhcHBseSB3 b3JrZXIKKyMgKDEgZGF5IDEgbWludXRlKS4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1YiBTRVQgKG1pbl9hcHBseV9k ZWxheSA9IDg2NDYwMDAwKSIKKyk7CisKKyMgTmV3IHJvdyB0byB0cmlnZ2VyIGFwcGx5IGRlbGF5 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 ZXN0X3RhYiBWQUxVRVMgKDAsICdmb29iYXInKSIpOworCisjIE1ha2Ugc3VyZSB3ZSBoYXZlIGxv bmcgZW5vdWdoIG1pbl9hcHBseV9kZWxheSBhZnRlciB0aGUgQUxURVIgY29tbWFuZAorY2hlY2tf YXBwbHlfZGVsYXlfbG9nKCRub2RlX3N1YnNjcmliZXIsICJsb2dpY2FsIHJlcGxpY2F0aW9uIGFw cGx5IGRlbGF5IiwgIjgwMDAwMDAwIik7CisKKyMgRGlzYWJsZSBzdWJzY3JpcHRpb24gYW5kIHRo ZSB3b3JrZXIgc2hvdWxkIGRpZSBpbW1lZGlhdGVseQorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViIERJU0FCTEU7Igor KTsKKworIyBXYWl0IHVudGlsIHdvcmtlciBkaWVzCitteSAkc3ViX3F1ZXJ5ID0KKyAgIlNFTEVD VCBjb3VudCgxKSA9IDAgRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3RhcF9zdWInIEFORCBwaWQgSVMgTk9UIE5VTEw7IjsKKyRub2RlX3N1YnNjcmliZXItPnBvbGxf cXVlcnlfdW50aWwoJ3Bvc3RncmVzJywgJHN1Yl9xdWVyeSkKKyAgb3IgZGllICJUaW1lZCBvdXQg d2hpbGUgd2FpdGluZyBmb3Igc3Vic2NyaWJlciB0byBkaWUiOworCisjIENvbmZpcm0gdGhlIHN1 c3BlbmRlZCByZWNvcmQgZG9lc24ndCBnZXQgYXBwbGllZCBieSB0aGUgQUxURVIgRElTQUJMRQor IyBjb21tYW5kLgorJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJTRUxFQ1QgY291bnQoYSkgRlJPTSB0ZXN0X3RhYiBXSEVSRSBhID0gMDsiKTsKK2lz KCRyZXN1bHQsIHFxKDApLCAiY2hlY2sgaWYgdGhlIGRlbGF5ZWQgdHJhbnNhY3Rpb24gZG9lc24n dCBnZXQgYXBwbGllZCBleHBlY3RlZGx5Iik7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3A7Cisk bm9kZV9wdWJsaXNoZXItPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zMC4wCgo= --_002_TYCPR01MB8373F3E780D5BB60E441ECF3EDC69TYCPR01MB8373jpnp_--