From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 19B97AC0A1D for ; Wed, 17 Jan 2024 05:27:22 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=WTh+lw4fbYBiNKMMfsJATmU2FZs/q4AyMJwRKsky5Cw=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1705469241; v=1; b=ekkq5trhWzc6XwuUqpWyY7QJm5Hnbh/N7hxgvPBiDc2/DhfjY9ClQsTqXNFPo8GiC3Q6Ah/J hKLyzZrXtU1a0qPghTdR8Vvv+deVamMI13Waiy2YY57zGBASm3nCUZBuppJTTXlfn3SE6ry88ng k6wKTJc6O4xxD0bWwYGL4b+I= X-Received: by 127.0.0.2 with SMTP id C7JgYY7687511x1tJb9KLru4; Tue, 16 Jan 2024 21:27:21 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.2918.1705457940890319195 for ; Tue, 16 Jan 2024 18:19:01 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10955"; a="466428905" X-IronPort-AV: E=Sophos;i="6.05,200,1701158400"; d="scan'208";a="466428905" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jan 2024 18:19:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10955"; a="784352925" X-IronPort-AV: E=Sophos;i="6.05,200,1701158400"; d="scan'208";a="784352925" X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 16 Jan 2024 18:18:59 -0800 X-Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 16 Jan 2024 18:18:59 -0800 X-Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 16 Jan 2024 18:18:59 -0800 X-Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 16 Jan 2024 18:18:59 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 16 Jan 2024 18:18:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PcBQ3eG9q3SkgpAElmzunkR8bMCAySoKuiyV1g1DxagZ1OKBe7Tec1DQ83bjpRVJUOb4L0Li70KuReIMixALqO+4tvrVLK2+Kf2u5hQ9kgkclNAtqE1FUFNtJwGMr+Edii0tQ7MS3vlDhRpA/HmwUuIsMg4WAYPUbUPttJKNndtcjfmmaI5pXbqYgvTc1YQCqjYI+TWb6/bJL3p6/5OshMICnCNb5m+FeGX63T42koMIxNSQJe1KFRRYv9ufJVZgyyyOqd6DHIyG5MQT6YXZkFb0awn0Q9JUpm5fkzBLw8NHuXQBix11DhoviAJfUDBZjPOCWAVZFQRVQN/WPRikSw== 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=7X5qm3ZMW/JRmL2gk2BgjU/MwoI98rRdg49vxNkpt/k=; b=n818HIPIgE4Hx9s3yCdXHZyTgUuJLn7GJjI9CI7u03yLqQKEq34guSsXAUfWZkJkwCMTwHAVKsQFwtTQiIioGX3K1z4zwgU0ngF6iW3xOzW1tbGda/+DrXJ9atblgAKAoS6TeTSqJYug4sXjDI/hqG+ckX0lDe25db98vDggT3UrSm8OpIwl/ZfK6oZRKip/vMGb2WEriZBRcbuI0SXd4xvM1iVJkyXXQg6ajHAFMUZKSCsLguCSbxfmb62fbMv5ynbn1KzVHzkFL/5qEHEGxHFoslI2tfmm3UnZxz1ieIFEFxfXyOL9Im6a3jkj5NkylHE58E5ij2AEx6BxnEzKGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com (2603:10b6:805:62::13) by BN9PR11MB5530.namprd11.prod.outlook.com (2603:10b6:408:103::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.30; Wed, 17 Jan 2024 02:18:53 +0000 X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::7681:973c:dca7:345b]) by SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::7681:973c:dca7:345b%7]) with mapi id 15.20.7202.020; Wed, 17 Jan 2024 02:18:53 +0000 From: "Zhang, Zifeng" To: "Guo, Gua" , "Chen, Arthur G" CC: "Chen, Christine" , gaoliming , "devel@edk2.groups.io" , "Yang, Yuting2" Subject: Re: [edk2-devel] [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError Feature Thread-Topic: [edk2-devel] [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError Feature Thread-Index: AQHaLNnMGjYrtcdNyUa0aNkUkL/J9rClWmeggAABsnCADe/wMIABilkggARvM4CAAGKvcIAcK4JwgAbs3ICAALu2gA== Date: Wed, 17 Jan 2024 02:18:52 +0000 Message-ID: References: <20231212090119.1150-1-yuting2.yang@intel.com> <023101da36cf$a50bb8f0$ef232ad0$@byosoft.com.cn> <02c801da488d$2bcee960$836cbc20$@byosoft.com.cn> In-Reply-To: <02c801da488d$2bcee960$836cbc20$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB2815:EE_|BN9PR11MB5530:EE_ x-ms-office365-filtering-correlation-id: 682abefb-4624-42c0-c1a4-08dc1702a63f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: bHlap/7/9hmrAKhDRDbUH2aU8IphIqWlrXmNGN6vhJ+2et4kZ5CyceohApTH2ekR/6FyGUZP2z7BYtxH8EMvCRRRAsWdvlylO3/PK3+49QxQemg40djICDqtqkFb1/iDGdGzh024ctVc9ArOsAkGlh2iq53je2U/Q+OWRC8Tm+tTCwrfWuxJuv8ezlEj51XH2vAW4XubQ3/PMypnQEUlH6g+SQXKD6Lt+2myaq9KJVCLvt1TtMLjuhSVTfPL0aq0KJEzCJw3nGBzDCJ1TFNQLQYpGQB4ZnhHXIpEKXQxovi9gMU3NmzA9aSZXgrpVIDJ97AXC66GQpivfTT0lKJ79SOVR0cg/LIKfi0KvMQTnRUOk2OVq/yQ4km7YoWWQxqpp99iF8nvpsUDmQao3aVO4Fc5aeWCuiTl6xH+uRqORJofYrsnhDPknYuMCr0iPbrbDzUtE3kRVQkpZ85mEUoxheBFh8EjoniXu5JLBfWrncQCapNJV0/Hk7/Z8nxhAINYeoOp3ZkrPhKeBv7iTQC+Aij4VwCPklZsclsHuRLpVL0BBorOXqUTPMGTyt3THj67/H6cvFlzyCT7A8PcCdBORJXG3RashXFF84/LiE2Va91Ep9/yRixNEaI7juwTCDdH0/YO+lihJRq3Sd+awi/VduBzFYJ0ACAJ8ofVf/rBDJb9bVaH83zEi7WMXO1hj2k3 x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VDRlYXpVSWt2SmpBdTV5R250RURVTzNsMVV0VFRZdEk4Qm5WNE1FeUdpYnVy?= =?utf-8?B?dTV5Zkt6Yk1CNUtYeTRnMnlvVVVWRCtVRHFtTEVSSDRGUlBJdHl6NVMrTWRk?= =?utf-8?B?L3Q4TXFZZStvSXZJWGg1SUVLUGw1UHVQT1JlL3N0UjkvajBWRGdZUmlUT0Qz?= =?utf-8?B?ZHhvcUNUaXNRdVhRU0s2Mlp0OTJITGpsYWNqdUh4ZFNZbkpOTGtpaHV6aHVz?= =?utf-8?B?emN6bnplWGdyRFRiREFZNG5FOWVKSVhGd01zWUdGUTFNSVpsQVZrSGJGa3h0?= =?utf-8?B?QVJ3WnM5QkVVcmdVRGZMamhtL3lRYmpYL0VScEVxVk9udElPaXpHWDFtbnkw?= =?utf-8?B?Wm9ISDZyaHFTdm03N0YwbS9SRWY5S2pialc0NXQ4T3hicHUrcWZQTGV1NHRU?= =?utf-8?B?ZGJ1UmU1dS9hWmJ1RENWK0Q1RzdHczZiOFFqSkJ0b2dXQUU2SVdGVzRTMS9q?= =?utf-8?B?NE9FVTQrN2IzNk9WcGw4eHRxZnUranNMenFZWi9qTmNqRU9KOG1VdmNaTUN3?= =?utf-8?B?cStNVVNUS211Z1JvQm0wRFRSeU1oZ2JMa01hVHY5eGU1RENVQWJ1R2tjVHpn?= =?utf-8?B?dGpKUnlnMWFuSW1uWHhmRE5ob2RjdFVMY0lQRk12eW5mdnpoUmhRYnkvQXhX?= =?utf-8?B?Qm1aWDM3N1Qvcm1BUGN0OEVpN1JkNHk5OCthSDJDSGpLTWlUVG92YjBHZEtZ?= =?utf-8?B?UEF6UE5KdFNkeVNhdGpjMmVCVmZtbURUOG15UGYzSXVoTlcvbURkeTZTTmsw?= =?utf-8?B?WnRRbnYzZjhuV1ppWERSN0xoQ3Zmc2wvYXY5VTQ5ZGxBanU5bHNjVUtEdmx3?= =?utf-8?B?NzNtRXMweWdSb3F1M2dNRVluQzUxNlRVTFJvbXVxdFdITTRZU1psMWFlaFE2?= =?utf-8?B?VjIyRkdrN3g1blJleXhvRGVWVk9OVldHR2N2d3ZIdXdBTTFMSDdSZHF3RWNX?= =?utf-8?B?R054TlM2a281eE5LZkV2b1lwaC8xclZXU2gxUHFmeHZka292ZU9GRWtSaFda?= =?utf-8?B?aHQ0NnQxZ0hPNnFONFR3UThUcmgyMGxDY2NWSnE4NG5RRFk4R0lRTUJKN00y?= =?utf-8?B?RFpvRDNVMVIwNHRQbXF6L2sxWWFCdkFzYnVSbHdKMk1LVU5YcmFHQ3R2OE9V?= =?utf-8?B?aFZVMFJTaTNyK2wxSjVlNkJJeXByNHl0blFhUm5USWx3aFp6V2w3aHkwWlZi?= =?utf-8?B?REVmbmhKeFh5SWlZdFFZUnhoczA5MWUyekQzdGt0RmJVZkoybFhReituNnNk?= =?utf-8?B?UW1mUVUydHRzVDV5cHdkNDdtMFI3SXdXekx6VzhrUXV4SEpERmJvbExQTCtk?= =?utf-8?B?QTFBOEpKbi9aS2FOdy84N0tLdGsyMHE2cEpTMDR1U0hBNk9lYWJpNUJWcThE?= =?utf-8?B?ZllYZ3NIZFJ2c0hDY05TbFYxQm50akYyVjNEeURZNXdxNnEwdWNKemwwRFZj?= =?utf-8?B?RStUREFra1NxZnZYL1diUXFkZnpzTjNSZGw5Ti9xMmlqUExKNlNCSWg4QXov?= =?utf-8?B?Mm9BMklJUU52ZXJlWHpnWlZDOXFBTDdGWSthd0REQmpFYXVaLzNOeVcxWDdI?= =?utf-8?B?N1hRQUM0YzFxb0R2RnBzcENiaFZJVDRqN2RFb2FxSHZzZGdibmx6eStvUlF2?= =?utf-8?B?bkNiekluYUNyWk9xODc3bU9RRExWVThiNm1vT3RpSFZ2Ykpjby9YTll5L21y?= =?utf-8?B?MVF2RnByTDlhT0cvbnJYYkYwd1Q4anBUUGQ5MU94NTYvbU0xU1BnUmp0aFA3?= =?utf-8?B?ZCtxVEx4U3lTbTN3L3Z1a3JObC9OV3pQYTVaMWJvVXROS2Fsam1uazNKUDN6?= =?utf-8?B?REYvMWZPR0xrVnRDNkt5dURZd3NoOG56cldXQm50MTlJSisrSDNxK1N5RWdj?= =?utf-8?B?YmRlMjBhTEpLZUVVMy9zRFFNZ2VUeWFlcTNGSTFwaldYaGQ2anF6Qk9tZDFO?= =?utf-8?B?TWpaNmJrVzg4dUxUZWY1VDlEOEtscTdvWUt6QXdsOXdyQkZFSmttQ2dFYUpr?= =?utf-8?B?QzVjZ3FaQklwam5Qa2FnVUovVytnbTZualhUN2dBaGdwajVXTThwVmdSY3U3?= =?utf-8?B?YlpFUjdnTnhqUXVoWEN5aVRieGtRK0pRM0ZOOTlTYnMzV2RtTlk4RnJHdmlN?= =?utf-8?Q?6iRavY79aCfhawQGWLuOh0cc0?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2815.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 682abefb-4624-42c0-c1a4-08dc1702a63f X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2024 02:18:52.5922 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: u8cj39Ok1LK+HlfSJqy/JlQbpoowPLE/2oPTVuSlUrDJVgNp2ve9YyqSNDhevG9RbiRpEda4E6iaOMwxL/fo1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5530 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zifeng.zhang@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 3IpXGJoZ00nrkSzoEIy4Whkbx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=ekkq5trh; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgR3VhLCBBcnRodXIuDQoNCkRvIHlvdSBoYXZlIG9wZW5zIGZvciB0aGlzIHNvbHV0aW9uIHN1 Z2dlc3RlZCBmcm9tIExpbWluZz8NCkppcmE6IGh0dHBzOi8vamlyYS5kZXZ0b29scy5pbnRlbC5j b20vYnJvd3NlL0NSSi0yMzk1NA0KDQpCZXN0IFJlZ2FyZHMsDQpaaWZlbmcNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29t LmNuPiANClNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMTYsIDIwMjQgMTE6MDQgUE0NClRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgWmhhbmcsIFppZmVuZyA8emlmZW5nLnpoYW5nQGludGVsLmNvbT47 IFlhbmcsIFl1dGluZzIgPHl1dGluZzIueWFuZ0BpbnRlbC5jb20+DQpDYzogQ2hlbiwgQ2hyaXN0 aW5lIDx5dXdlaS5jaGVuQGludGVsLmNvbT4NClN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxd IFtQYXRjaCBWMl0gQmFzZVRvb2xzOiBWZnJDb21waWxlciBBZGRzIERlZmF1bHRWYWx1ZUVycm9y IEZlYXR1cmUNCg0KDQpUaGlzIG9wdGlvbiBpcyBmb3IgdGhlIG1vZHVsZSBjaGVjay4gSSBzdWdn ZXN0IHRvIHNldCB0aGlzIG9wdGlvbiBpbiBJTkYgaW5zdGVhZCBvZiBEU0MuIA0KSWYgc28sIERT QyBpcyBub3QgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRoZSBhZGRpdGlvbmFsIG9wdGlvbnMuIEFu ZCwgdGhpcyBtb2R1bGUgd2lsbCBoYXZlIHRoZSBzYW1lIGJ1aWxkIHJlc3VsdCB3aGVuIGl0IGlz IHNwZWNpZmllZCBpbiB0aGUgZGlmZmVyZW50IHBsYXRmb3JtIERTQyBmaWxlcy4NCg0KSSB1bmRl cnN0YW5kIHlvdXIgcmVxdWlyZW1lbnQgdG8gZW5hYmxlIHRoaXMgb3B0aW9uIGZvciB0aGUgbW9k dWxlcyBpbiBzb21lIHNwZWNpZmljIHBhY2thZ2UuIA0KSSB0aGluayB5b3UgY2FuIGVhc2lseSBm aW5kIHRob3NlIG1vZHVsZXMgdGhvc2UgaGF2ZSBWRlIvSEZSLCB0aGVuIHVwZGF0ZSB0aGVpciBJ TkZzIHdpdGggbmV3IGNoZWNrIG9wdGlvbi4gDQoNClRoYW5rcw0KTGltaW5nDQo+IC0tLS0t6YKu 5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IOS7o+ihqCBaaGFuZywgWmlmZW5nDQo+IOWPkemAgeaXtumXtDogMjAy NOW5tDHmnIgxMuaXpSAxMzoyMA0KPiDmlLbku7bkuro6IFlhbmcsIFl1dGluZzIgPHl1dGluZzIu eWFuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZyANCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4g5oqE6YCBOiBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50ZWwuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW8NCj4g5Li76aKYOiBSZTogW2VkazItZGV2ZWxdIFtQYXRjaCBWMl0g QmFzZVRvb2xzOiBWZnJDb21waWxlciBBZGRzIA0KPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJl DQo+IA0KPiBIaSBMaW1pbmcsDQo+IA0KPiBDb3VsZCB5b3UgaGVscCB0byBzaGFyZSB0aGUgdXBk YXRlIGZvciB0aGlzIHBhdGNoIHNvbHV0aW9uPw0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBaaWZl bmcNCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbmcsIFl1dGlu ZzIgPHl1dGluZzIueWFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMjUs IDIwMjMgMzoxMCBQTQ0KPiBUbzogR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gQ2M6IFpoYW5nLCBaaWZlbmcgPHppZmVuZy56aGFuZ0BpbnRlbC5jb20+OyBDaGVuLCBD aHJpc3RpbmUgDQo+IDx5dXdlaS5jaGVuQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VUb29sczogVmZyQ29tcGlsZXIgQWRkcyBE ZWZhdWx0VmFsdWVFcnJvciANCj4gRmVhdHVyZQ0KPiANCj4gSGkgTGltaW5nLA0KPiANCj4gVGhh bmsgeW91IGZvciBhZGRpbmcgIHRoZSBhY2NvdW50IGZvciBtZS4NCj4gSSBoYXZlIGNyZWF0ZWQg YSBCdWd6aWxsYSANCj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNn aT9pZD00NjI5DQo+IGZvciB0aGlzIGZlYXR1cmUgfg0KPiANCj4gQmVzdCBSZWdhcmRzLCwNCj4g WXV0aW5nDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW9saW1p bmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gU2VudDogTW9uZGF5LCBEZWNlbWJlciAy NSwgMjAyMyA5OjE0IEFNDQo+IFRvOiBZYW5nLCBZdXRpbmcyIDx5dXRpbmcyLnlhbmdAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiDlm57lpI06IFtQYXRjaCBWMl0gQmFzZVRvb2xzOiBWZnJDb21waWxl ciBBZGRzIERlZmF1bHRWYWx1ZUVycm9yIA0KPiBGZWF0dXJlDQo+IA0KPiBZb3VyIGFjY291bnQg eXV0aW5nMi55YW5nQGludGVsLmNvbSBoYXMgYmVlbiBhZGRlZC4gUFc6IHRpYW5vQDEyMw0KPiAN Cj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBZYW5nLCBZdXRpbmcy IDx5dXRpbmcyLnlhbmdAaW50ZWwuY29tPg0KPiA+IOWPkemAgeaXtumXtDogMjAyM+W5tDEy5pyI MjLml6UgMTM6NDENCj4gPiDmlLbku7bkuro6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+DQo+ID4g5oqE6YCBOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAYnNkaW8uY29tPjsg RmVuZywgQm9iIEMgDQo+ID4gPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgQ2hlbiwgQXJ0aHVyIEcg PGFydGh1ci5nLmNoZW5AaW50ZWwuY29tPjsgDQo+ID4gQ2hlbiwgQ2hyaXN0aW5lIDx5dXdlaS5j aGVuQGludGVsLmNvbT47IFpoYW5nLCBaaWZlbmcgDQo+ID4gPHppZmVuZy56aGFuZ0BpbnRlbC5j b20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+IOS4u+mimDogUkU6IFtQYXRjaCBWMl0gQmFz ZVRvb2xzOiBWZnJDb21waWxlciBBZGRzIERlZmF1bHRWYWx1ZUVycm9yIA0KPiA+IEZlYXR1cmUN Cj4gPg0KPiA+IEhpIExpbWluZywNCj4gPg0KPiA+IFRoYW5rIHlvdSBmb3IgcmV2aWV3aW5nIH4N Cj4gPiBDb3VsZCB5b3UgcGxlYXNlIGhlbHAgbWUgY3JlYXRlIGEgQnVnemlsbGEgYWNjb3VudD8g Q3VycmVudGx5LCBJIGRvIA0KPiA+IG5vdA0KPiBoYXZlDQo+ID4gYWNjZXNzIHRvIHRoZSBCdWd6 aWxsYS4NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPiBZdXRpbmcNCj4gPg0KPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWmhhbmcsIFppZmVuZyA8emlmZW5nLnpo YW5nQGludGVsLmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjEsIDIwMjMgMjo0 NCBQTQ0KPiA+IFRvOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgWWFu ZywgWXV0aW5nMiANCj4gPiA8eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gPiBDYzogUmViZWNj YSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT47IEZlbmcsIEJvYiBDIA0KPiA+IDxib2IuYy5mZW5n QGludGVsLmNvbT47IENoZW4sIEFydGh1ciBHIDxhcnRodXIuZy5jaGVuQGludGVsLmNvbT47IA0K PiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50 ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VUb29sczogVmZyQ29tcGls ZXIgQWRkcyANCj4gPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJlDQo+ID4NCj4gPiBIaSBMaW1p bmcsDQo+ID4NCj4gPiBUaGFua3MgZm9yIHJldmlld2luZy4NCj4gPiBGb3IgYmFja2dyb3VuZCBv ZiB0aGlzIGNoYW5nZSwgd2Ugd2lsbCByZW1vdmUgZGVmYXVsdCBmbGFncyBpbiANCj4gPiBWRlIv SEZSIGluIG5ldyBwbGF0Zm9ybS4gU28gd2UgbmVlZCBoZWxwIGZyb20gVkZSIGNvbXBsaWVyIHRv IG1ha2UgYSANCj4gPiBkZWZhdWx0IGZsYWcgY2hlY2sgdG8gYXZvaWQgbWFudWFsbHkgYWRkaW5n Lg0KPiA+IEBZYW5nLCBZdXRpbmcyLCBjb3VsZCB5b3UgaGVscCB0byBjcmVhdGUgYSBCWiBmb3Ig dGhpcyBmZWF0dXJlIGFuZCANCj4gPiBzaGFyZQ0KPiBpbg0KPiA+IG1haWwgdGhyZWFkPw0KPiA+ IFRoZW4gbGV0IG1lIG1ha2UgYSBjbGFyaWZpY2F0aW9uIGZvciB5b3VyIHF1ZXN0aW9ucy4NCj4g Pg0KPiA+ICMxOiBUaGUgcHVycG9zZSBvZiAtLWNhdGNoX2RlZmF1bHQNCj4gPiBXZSBzZW5kIC0t Y2F0Y2hfZGVmYXVsdCBmbGFnIGluIGJ1aWxkIG9wdGlvbiB0byBpbmRpY2F0ZSB3aGljaCANCj4g PiBwbGF0Zm9ybQ0KPiBzaG91bGQNCj4gPiBjaGVjayBkZWZhdWx0IGZsYWcgaW4gVkZSL0hGUi4N Cj4gPiBBY3R1YWxseSBtYXliZSBzb21lIHBsYXRmb3JtcyB1c2VkIHNhbWUgRURLMiBkb3duc3Ry ZWFtIGJyYW5jaCwgc28gDQo+ID4gd2Ugb25seSBzZW5kIC0tY2F0Y2hfZGVmYXVsdCBmbGFnIGZv ciB0aGUgcGxhdGZvcm1zIHdoaWNoIG5lZWQgdGhpcyBjaGVjay4NCj4gPg0KPiA+ICMyOiBUaGUg cHVycG9zZSBvZiAtLWV4Y2VwdF9saXN0DQo+ID4gVkZSIGNvbXBpbGVyIHdpbGwgcmVjZWl2ZSBW RlIvSEZSIGNvbmZpZ3VyYXRpb25zIGZyb20gYWxsIGZvbGRlcnMNCj4gaW5jbHVkaW5nDQo+ID4g SW50ZWwgYW5kIEVESzIuIEJ1dCBpbiBvdXIgZXhwZWN0YXRpb24gVkZSIGNvbXBpbGVyIG9ubHkg ZG8gdGhpcyANCj4gPiBjaGVjayBpbiBJbnRlbC4NCj4gPiBTbyBXZSB1c2UgLS1leGNlcHRfbGlz dCB0byBkZWxpdmVyIHBhY2thZ2UgbGlzdCBpbiBFREsyIHRvIGF2b2lkIA0KPiA+IHRoaXMNCj4g Y2hlY2suDQo+ID4NCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gWmlmZW5nDQo+ID4NCj4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFlhbmcsIFl1dGluZzIgPHl1dGluZzIu eWFuZ0BpbnRlbC5jb20+DQo+ID4gU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMTIsIDIwMjMgNTox MiBQTQ0KPiA+IFRvOiBaaGFuZywgWmlmZW5nIDx6aWZlbmcuemhhbmdAaW50ZWwuY29tPjsgQ2hl biwgQXJ0aHVyIEcgDQo+ID4gPGFydGh1ci5nLmNoZW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT47IEdhbywg TGltaW5nIA0KPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBGZW5nLCBCb2IgQyA8Ym9i LmMuZmVuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQYXRjaCBWMl0gQmFzZVRvb2xz OiBWZnJDb21waWxlciBBZGRzIA0KPiA+IERlZmF1bHRWYWx1ZUVycm9yIEZlYXR1cmUNCj4gPg0K PiA+ICtDYyBaaGFuZywgWmlmZW5nLCBDaGVuLCBBcnRodXIgRw0KPiA+DQo+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5A aW50ZWwuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDEyLCAyMDIzIDU6MDQgUE0N Cj4gPiBUbzogWWFuZywgWXV0aW5nMiA8eXV0aW5nMi55YW5nQGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvDQo+ID4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBic2Rpby5jb20+OyBH YW8sIExpbWluZyANCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgRmVuZywgQm9iIEMg PGJvYi5jLmZlbmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VU b29sczogVmZyQ29tcGlsZXIgQWRkcyANCj4gPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJlDQo+ ID4NCj4gPiArQ2MgWWFuZywgWXV0aW5nMg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gRnJvbTogWWFuZywgWXV0aW5nMiA8eXV0aW5nMi55YW5nQGludGVsLmNv bT4NCj4gPiA+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDEyLCAyMDIzIDU6MDEgUE0NCj4gPiA+ IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNj YUBic2Rpby5jb20+OyBHYW8sIExpbWluZyANCj4gPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyANCj4gPiA+IENoZW4sIENo cmlzdGluZSA8eXV3ZWkuY2hlbkBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUGF0Y2ggVjJd IEJhc2VUb29sczogVmZyQ29tcGlsZXIgQWRkcyBEZWZhdWx0VmFsdWVFcnJvciANCj4gPiA+IEZl YXR1cmUNCj4gPiA+DQo+ID4gPiBBZGQgLS1jYXRjaF9kZWZhdWx0IG9wdGlvbg0KPiA+ID4gUmFp c2UgYSBEZWZhdWx0VmFsdWVFcnJvciB3aGVuIGVuY291bnRlcmluZyBWRlIgZGVmYXVsdCANCj4g PiA+IGRlZmluaXRpb25zIHRvIGhlbHAgcmVtb3ZlIGRlZmF1bHQgdmFyaWFibGVzLg0KPiA+ID4g QWRkIC0tZXhjZXB0X2xpc3Qgb3B0aW9uDQo+ID4gPiBFeGNsdWRlIHBhY2thZ2VzIHRoYXQgZG9u J3QgcmVxdWlyZSBlbmFibGluZyB0aGUgY2F0Y2hfZGVmYXVsdCBmdW5jdGlvbi4NCj4gPiA+DQo+ ID4gPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT4NCj4gPiA+IENjOiBMaW1p bmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiBDYzogQm9iIEZlbmcgPGJv Yi5jLmZlbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IENocmlzdGluZSBDaGVuIDx5dXdlaS5jaGVu QGludGVsLmNvbT4NCj4gPiA+IENjOiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5nQGludGVsLmNv bT4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5n QGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21w aWxlL1ZmckNvbXBpbGVyLmNwcCB8ICA0MCArKy0NCj4gPiA+ICBCYXNlVG9vbHMvU291cmNlL0Mv VmZyQ29tcGlsZS9WZnJDb21waWxlci5oICAgfCAgIDMgKw0KPiA+ID4gIEJhc2VUb29scy9Tb3Vy Y2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmNwcCAgICB8ICAgMyArLQ0KPiA+ID4gIEJhc2VUb29s cy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmggICAgICB8ICAgMyArLQ0KPiA+ID4gIEJh c2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckZvcm1Qa2cuaCAgICB8ICAgMSArDQo+ID4g PiAgQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyU3ludGF4LmcgICAgIHwgMjM4DQo+ ID4gKysrKysrKysrKy0tLS0tLS0tDQo+ID4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0 aW9ucygrKSwgMTA0IGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9CYXNl VG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHANCj4gPiA+IGIvQmFzZVRv b2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyQ29tcGlsZXIuY3BwDQo+ID4gPiBpbmRleCA1ZjRk MjYyZDg1Li5lOTdjZWJmZjY1IDEwMDY0NA0KPiA+ID4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9D L1ZmckNvbXBpbGUvVmZyQ29tcGlsZXIuY3BwDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNl L0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHANCj4gPiA+IEBAIC03OCw2ICs3OCw5IEBAIENW ZnJDb21waWxlcjo6T3B0aW9uSW5pdGlhbGl6YXRpb24gKA0KPiA+ID4gICAgbU9wdGlvbnMuV2Fy bmluZ0FzRXJyb3IgICAgICAgICAgICAgICAgPSBGQUxTRTsNCj4gPiBtT3B0aW9ucy5BdXRvRGVm YXVsdA0KPiA+ID4gPSBGQUxTRTsgICBtT3B0aW9ucy5DaGVja0RlZmF1bHQgICAgICAgICAgICAg ICAgICA9IEZBTFNFOysNCj4gPiA+IG1PcHRpb25zLklzQ2F0Y2hEZWZhdWx0RW5hYmxlICAgICAg ICAgID0gRkFMU0U7Kw0KPiA+IG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QNCj4gPiA+ID0gTlVMTDsr ICBtT3B0aW9ucy5FeGNlcHRpb25MaXN0U2l6ZSAgICAgICAgICAgICA9IDA7ICAgbWVtc2V0DQo+ ID4gPiAoJm1PcHRpb25zLk92ZXJyaWRlQ2xhc3NHdWlkLCAwLCBzaXplb2YgKEVGSV9HVUlEKSk7 ICAgIGlmIChBcmdjID09IDEpDQo+ID4ge0BAIC0NCj4gPiA+IDk1LDYgKzk4LDIzIEBAIENWZnJD b21waWxlcjo6T3B0aW9uSW5pdGlhbGl6YXRpb24gKA0KPiA+ID4gICAgICAgIFZlcnNpb24gKCk7 ICAgICAgIFNFVF9SVU5fU1RBVFVTIChTVEFUVVNfREVBRCk7DQo+ID4gcmV0dXJuOysgICAgfSBl bHNlIGlmDQo+ID4gPiAoc3RyaWNtcChBcmd2W0luZGV4XSwgIi0tY2F0Y2hfZGVmYXVsdCIpID09 IDApeysNCj4gPiA+IG1PcHRpb25zLklzQ2F0Y2hEZWZhdWx0RW5hYmxlID0gVFJVRTsrICAgIH0g ZWxzZSBpZg0KPiAoc3RyaWNtcChBcmd2W0luZGV4XSwNCj4gPiAiLS0NCj4gPiA+IGV4Y2VwdF9s aXN0IikgPT0gMCl7KyAgICAgIElOVDMyIFN0YXJ0ID0gKytJbmRleDsrICAgICAgaWYgKChTdGFy dCA+PQ0KPiBBcmdjKQ0KPiA+IHx8DQo+ID4gPiAoQXJndltTdGFydF1bMF0gPT0gJy0nKSkgeysg ICAgICAgIERlYnVnRXJyb3IgKE5VTEwsIDAsIDEwMDEsICJNaXNzaW5nDQo+ID4gb3B0aW9uIiwg Ii0NCj4gPiA+IGV4Y2VwdGlvbl9saXN0IG1pc3NpbmcgZXhjZXB0IGxpc3QiKTsrICAgICAgICBn b3RvIEZhaWw7KyAgICAgIH0rDQo+ID4gd2hpbGUNCj4gPiA+ICgoQXJndltJbmRleF1bMF0gIT0g Jy0nKSAmJiAoSW5kZXggPCBBcmdjIC0gMSkpIHsrICAgICAgICBJbmRleCsrOysNCj4gfSsNCj4g PiBJTlQzMg0KPiA+ID4gRW5kID0gSW5kZXgtLTsrICAgICAgbU9wdGlvbnMuRXhjZXB0aW9uTGlz dFNpemUgPSBFbmQgLSBTdGFydDsrDQo+IGZvcg0KPiA+IChJTlQzMiBpID0NCj4gPiA+IFN0YXJ0 OyBpIDwgRW5kOyBpKyspIHsrICAgICAgICBtT3B0aW9ucy5FeGNlcHRpb25MaXN0ID0gKENIQVI4 KiopDQo+ID4gPiByZWFsbG9jKG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QsIChpIC0gU3RhcnQgKyAx KSAqIHNpemVvZihDSEFSOCopKTsrDQo+ID4gPiBtT3B0aW9ucy5FeGNlcHRpb25MaXN0W2ktU3Rh cnRdID0gQXJndltpXTsrICAgICAgfSAgICAgfSBlbHNlIGlmDQo+ID4gKHN0cmljbXAoQXJndltJ bmRleF0sDQo+ID4gPiAiLWwiKSA9PSAwKSB7ICAgICAgIG1PcHRpb25zLkNyZWF0ZVJlY29yZExp c3RGaWxlID0gVFJVRTsNCj4gPiA+IGdDSWZyUmVjb3JkSW5mb0RCLlR1cm5PbiAoKTtAQCAtMTc5 LDcgKzE5OSwxMSBAQCANCj4gPiA+IENWZnJDb21waWxlcjo6T3B0aW9uSW5pdGlhbGl6YXRpb24g KA0KPiA+ID4gICAgICAgIGdvdG8gRmFpbDsgICAgIH0gICAgIHN0cmNweSAobU9wdGlvbnMuVmZy RmlsZU5hbWUsDQo+ID4gQXJndltJbmRleF0pOy0rICAgIGZvciAoaW50IGkgPQ0KPiA+ID4gMDsg aSA8IG1PcHRpb25zLkV4Y2VwdGlvbkxpc3RTaXplOyBpKyspIHsrICAgICAgaWYNCj4gPiAoc3Ry c3RyKG1PcHRpb25zLlZmckZpbGVOYW1lLA0KPiA+ID4gbU9wdGlvbnMuRXhjZXB0aW9uTGlzdFtp XSkgIT0gTlVMTCkgeysNCj4gPiBtT3B0aW9ucy5Jc0NhdGNoRGVmYXVsdEVuYWJsZSA9DQo+ID4g PiBGQUxTRTsrICAgICAgfSsgICAgfSAgICAgaWYgKG1PcHRpb25zLk91dHB1dERpcmVjdG9yeSA9 PSBOVUxMKQ0KPiA+ID4geyAgICAgICBtT3B0aW9ucy5PdXRwdXREaXJlY3RvcnkgPSAoQ0hBUjgg KikgbWFsbG9jICgxKTsgICAgICAgaWYNCj4gPiA+IChtT3B0aW9ucy5PdXRwdXREaXJlY3Rvcnkg PT0gTlVMTCkge0BAIC0yMTcsNiArMjQxLDExIEBAIEZhaWw6DQo+ID4gPiAgICAgIGZyZWUgKG1P cHRpb25zLlZmckZpbGVOYW1lKTsgICAgIG1PcHRpb25zLlZmckZpbGVOYW1lDQo+ID4gPQ0KPiA+ ID4gTlVMTDsgICB9KyAgaWYgKG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QgIT0gTlVMTCkgeysNCj4g PiA+IGZyZWUobU9wdGlvbnMuRXhjZXB0aW9uTGlzdCk7KyAgICBtT3B0aW9ucy5FeGNlcHRpb25M aXN0DQo+ID4gPSBOVUxMOysrICB9DQo+ID4gPiBpZiAobU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1l ICE9IE5VTEwpIHsgICAgIGZyZWUNCj4gPiAobU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1lKTsNCj4g PiA+IG1PcHRpb25zLlZmckJhc2VGaWxlTmFtZSAgICAgICAgICAgICA9IE5VTEw7QEAgLTQ5Niw2 ICs1MjUsMTENCj4gPiBAQA0KPiA+ID4gQ1ZmckNvbXBpbGVyOjp+Q1ZmckNvbXBpbGVyICgNCj4g PiA+ICAgICAgbU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1lID0gTlVMTDsgICB9ICsgIGlmDQo+ID4g KG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QgIT0NCj4gPiA+IE5VTEwpIHsrICAgIGZyZWUgKG1PcHRp b25zLkV4Y2VwdGlvbkxpc3QpOysgICAgbU9wdGlvbnMuRXhjZXB0aW9uTGlzdA0KPiA9DQo+ID4g PiBOVUxMOysgIH0rICAgaWYgKG1PcHRpb25zLk91dHB1dERpcmVjdG9yeSAhPSBOVUxMKSB7ICAg ICBmcmVlDQo+ID4gPiAobU9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5KTsgICAgIG1PcHRpb25zLk91 dHB1dERpcmVjdG9yeSA9DQo+IE5VTEw7QEANCj4gPiAtNjc5LDcNCj4gPiA+ICs3MTMsNyBAQCBD VmZyQ29tcGlsZXI6OkNvbXBpbGUgKA0KPiA+ID4gICAgICBEZWJ1Z0Vycm9yIChOVUxMLCAwLCAw MDAxLCAiRXJyb3Igb3BlbmluZyB0aGUgaW5wdXQgZmlsZSIsICIlcyIsDQo+ID4gPiBJbkZpbGVO YW1lKTsgICAgIGdvdG8gRmFpbDsgICB9LSsgIElucHV0SW5mby5Jc0NhdGNoRGVmYXVsdEVuYWJs ZSA9DQo+ID4gPiBtT3B0aW9ucy5Jc0NhdGNoRGVmYXVsdEVuYWJsZTsgICBpZiAobU9wdGlvbnMu SGFzT3ZlcnJpZGVDbGFzc0d1aWQpDQo+ID4gPiB7ICAgICBJbnB1dEluZm8uT3ZlcnJpZGVDbGFz c0d1aWQgPSAmbU9wdGlvbnMuT3ZlcnJpZGVDbGFzc0d1aWQ7ICAgfQ0KPiA+IGVsc2UNCj4gPiA+ IHtAQCAtOTM3LDUgKzk3MSwzIEBAIG1haW4gKA0KPiA+ID4gICAgIHJldHVybiBHZXRVdGlsaXR5 U3RhdHVzICgpOyB9LS1kaWZmIC0tZ2l0IA0KPiA+ID4gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZy Q29tcGlsZS9WZnJDb21waWxlci5oDQo+ID4gPiBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21w aWxlL1ZmckNvbXBpbGVyLmgNCj4gPiA+IGluZGV4IGI2ZTIwN2QyY2UuLjM5ZTBhODlhMjkgMTAw NjQ0DQo+ID4gPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxl ci5oDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxl ci5oDQo+ID4gPiBAQCAtNTIsNiArNTIsOSBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiAgICBC T09MRUFOIFdhcm5pbmdBc0Vycm9yOyAgIEJPT0xFQU4gQXV0b0RlZmF1bHQ7ICAgQk9PTEVBTg0K PiA+ID4gQ2hlY2tEZWZhdWx0OysgIEJPT0xFQU4gSXNDYXRjaERlZmF1bHRFbmFibGU7KyAgQ0hB UjgqKg0KPiA+IEV4Y2VwdGlvbkxpc3Q7Kw0KPiA+ID4gSU5UMTYgICAgRXhjZXB0aW9uTGlzdFNp emU7IH0gT1BUSU9OUzsgIHR5cGVkZWYgZW51bSB7ZGlmZiAtLWdpdA0KPiA+ID4gYS9CYXNlVG9v bHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJvci5jcHANCj4gPiA+IGIvQmFzZVRvb2xzL1Nv dXJjZS9DL1ZmckNvbXBpbGUvVmZyRXJyb3IuY3BwDQo+ID4gPiBpbmRleCA2NWJiOGUzNGZkLi44 YTcwNmY5MjliIDEwMDY0NA0KPiA+ID4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBp bGUvVmZyRXJyb3IuY3BwDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGls ZS9WZnJFcnJvci5jcHANCj4gPiA+IEBAIC00OSw3ICs0OSw4IEBAIHN0YXRpYyBTVkZSX1dBUk5J TkdfSEFORExFDQo+ID4gVkZSX1dBUk5JTkdfSEFORExFX1RBQkxFDQo+ID4gPiBbXSA9IHsNCj4g PiA+ICAgIHsgVkZSX1dBUk5JTkdfREVGQVVMVF9WQUxVRV9SRURFRklORUQsICI6IGRlZmF1bHQg dmFsdWUNCj4gPiByZS1kZWZpbmVkDQo+ID4gPiB3aXRoIGRpZmZlcmVudCB2YWx1ZSJ9LCAgIHsg VkZSX1dBUk5JTkdfQUNUSU9OX1dJVEhfVEVYVF9UV08sICI6DQo+ID4gQWN0aW9uDQo+ID4gPiBv cGNvZGUgc2hvdWxkIG5vdCBoYXZlIFRleHRUd28gcGFydCJ9LCB7IA0KPiA+ID4gVkZSX1dBUk5J TkdfT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPREUsICI6IE5vdCByZWNvbW1lbmQNCj4gdG8NCj4g PiB1c2UNCj4gPiA+IG9ic29sZXRlZCBmcmFtZXdvcmsgb3Bjb2RlIn0sLSAgeyBWRlJfV0FSTklO R19DT0RFVU5ERUZJTkVELCAiOg0KPiA+ID4gdW5kZWZpbmVkIFdhcm5pbmcgQ29kZSIgfSsgIHsg VkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCwgIjoNCj4gPiA+IHVuZGVmaW5lZCBXYXJuaW5nIENv ZGUiIH0sKyAgeyBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCwgIjogcGxzDQo+ID4gcmVtb3ZlDQo+ ID4gPiB0aGUgZGVmYXVsdCB2YWx1ZXMgaWYgbmVjZXNzYXJ5IiB9IH07IA0KPiA+ID4gQ1ZmckVy cm9ySGFuZGxlOjpDVmZyRXJyb3JIYW5kbGUgKGRpZmYgLS0gZ2l0IA0KPiA+ID4gYS9CYXNlVG9v bHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJvci5oDQo+ID4gPiBiL0Jhc2VUb29scy9Tb3Vy Y2UvQy9WZnJDb21waWxlL1ZmckVycm9yLmgNCj4gPiA+IGluZGV4IDdkMTZiZDVmNzQuLjFiNGJj MTczZDIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9W ZnJFcnJvci5oDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJF cnJvci5oDQo+ID4gPiBAQCAtNDcsNyArNDcsOCBAQCB0eXBlZGVmIGVudW0gew0KPiA+ID4gICAg VkZSX1dBUk5JTkdfREVGQVVMVF9WQUxVRV9SRURFRklORUQgPSAwLCANCj4gPiA+IFZGUl9XQVJO SU5HX0FDVElPTl9XSVRIX1RFWFRfVFdPLA0KPiA+ID4gVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZS QU1FV09SS19PUENPREUsLQ0KPiA+ID4gVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCsNCj4gVkZS X1dBUk5JTkdfQ09ERVVOREVGSU5FRCwrDQo+ID4gPiBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCB9 IEVGSV9WRlJfV0FSTklOR19DT0RFOyAgdHlwZWRlZg0KPiA+IHN0cnVjdA0KPiA+ID4gX1NWRlJf RVJST1JfSEFORExFIHtkaWZmIC0tZ2l0DQo+ID4gPiBhL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJD b21waWxlL1ZmckZvcm1Qa2cuaA0KPiA+ID4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGls ZS9WZnJGb3JtUGtnLmgNCj4gPiA+IGluZGV4IDllZjZmMDc3ODcuLmQ4ZmFkYTNiY2IgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJGb3JtUGtnLmgN Cj4gPiA+ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckZvcm1Qa2cuaA0K PiA+ID4gQEAgLTk2LDYgKzk2LDcgQEAgc3RydWN0IFNCdWZmZXJOb2RlIHsNCj4gPiA+ICAgdHlw ZWRlZiBzdHJ1Y3QgeyAgIEVGSV9HVUlEICpPdmVycmlkZUNsYXNzR3VpZDsrICBCT09MRUFODQo+ ID4gPiBJc0NhdGNoRGVmYXVsdEVuYWJsZTsgfSBJTlBVVF9JTkZPX1RPX1NZTlRBWDsgIGNsYXNz IENGb3JtUGtnIA0KPiA+ID4ge2RpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29t cGlsZS9WZnJTeW50YXguZw0KPiA+ID4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9W ZnJTeW50YXguZw0KPiA+ID4gaW5kZXggNTVmZDA2N2Y4YS4uNWRhZjFjNDIzYyAxMDA2NDQNCj4g PiA+IC0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmclN5bnRheC5nDQo+ID4g PiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJTeW50YXguZw0KPiA+ID4g QEAgLTUwLDYgKzUwLDcgQEAgVmZyUGFyc2VyU3RhcnQgKA0KPiA+ID4gIHsgICBQYXJzZXJCbGFj a0JveDxDVmZyRExHTGV4ZXIsIEVmaVZmclBhcnNlciwgQU5UTFJUb2tlbj4NCj4gPiBWZnJQYXJz ZXIoRmlsZSk7DQo+ID4gPiBWZnJQYXJzZXIucGFyc2VyKCktPlNldE92ZXJyaWRlQ2xhc3NHdWlk DQo+ID4gPiAoSW5wdXRJbmZvLT5PdmVycmlkZUNsYXNzR3VpZCk7Kw0KPiA+ID4gVmZyUGFyc2Vy LnBhcnNlcigpLT5TZXRJc0NhdGNoRGVmYXVsdEVuYWJsZShJbnB1dEluZm8tDQo+ID4gPiA+SXND YXRjaERlZmF1bHRFbmFibGUpOyAgIHJldHVybg0KPiA+IFZmclBhcnNlci5wYXJzZXIoKS0+dmZy UHJvZ3JhbSgpOyB9ID4+QEAgLQ0KPiA+ID4gMzg2LDggKzM4Nyw4IEBAIGRhdGFTdHJ1Y3RGaWVs ZDMyIFtCT09MRUFOICBGaWVsZEluVW5pb25dOg0KPiA+ID4gICAgOyAgZGF0YVN0cnVjdEZpZWxk MTYgW0JPT0xFQU4gIEZpZWxkSW5Vbmlvbl06LSAgPDwgLSAgICBVSU5UMzINCj4gPiBBcnJheU51 bSA9IDA7DQo+ID4gPiArICA8PCsgICAgVUlOVDMyIEFycmF5TnVtID0gMDsgICA+PiAgICgiVUlO VDE2IiB8ICJDSEFSMTYiKQ0KPiA+ID4gTjpTdHJpbmdJZGVudGlmaWVyQEAgLTczNyw3ICs3Mzgs NyBAQCB2ZnJGb3JtU2V0TGlzdCA6DQo+ID4gPiAgICA7ICB2ZnJTdGF0ZW1lbnRFeHRlbnNpb246 LSAgPDwgKyAgPDwgICAgICBFRklfR1VJRCBHdWlkOw0KPiA+IENJZnJHdWlkICpHdWlkT2JqDQo+ ID4gPiA9IE5VTEw7ICAgICAgQ0hBUjggICAgKlR5cGVOYW1lID0gTlVMTDtAQCAtNzUxLDcgKzc1 Miw3IEBADQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHRlbnNpb246DQo+ID4gPiAgICA+PiAgIEw6R3Vp ZE9wICAgVXVpZCAiPSIgZ3VpZERlZmluaXRpb25bR3VpZF0tICB7IiwiIERhdGFUeXBlICI9Ig0K PiArDQo+ID4geyIsIg0KPiA+ID4gRGF0YVR5cGUgIj0iICAgICAoICAgICAgICAgVTY0OiJVSU5U NjQiIHtPcGVuQnJhY2tldCBBTjE6TnVtYmVyDQo+ID4gQ2xvc2VCcmFja2V0DQo+ID4gPiA8PEFy cmF5TnVtID0gX1NUT1UzMihBTjEtPmdldFRleHQoKSwgQU4xLT5nZXRMaW5lKCkpOz4+fSA8PA0K PiBUeXBlTmFtZQ0KPiA+ID0NCj4gPiA+IFU2NC0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gVTY0LT5n ZXRMaW5lKCk7ID4+QEAgLTc3MCw3DQo+ID4gPiArNzcxLDcgQEAgdmZyU3RhdGVtZW50RXh0ZW5z aW9uOg0KPiA+ID4gICAgICAgIHwgVDoiRUZJX0hJSV9USU1FIiB7T3BlbkJyYWNrZXQgQU44Ok51 bWJlciBDbG9zZUJyYWNrZXQgDQo+ID4gPiA8PEFycmF5TnVtID0gX1NUT1UzMihBTjgtPmdldFRl eHQoKSwgQU44LT5nZXRMaW5lKCkpOz4+fSA8PA0KPiBUeXBlTmFtZQ0KPiA+ID4gPSBULT5nZXRU ZXh0KCk7IExpbmVOdW0gPSBULT5nZXRMaW5lKCk7IElzU3RydWN0ID0gVFJVRTs+Pg0KPiA+IHwN Cj4gPiA+IFI6IkVGSV9ISUlfUkVGIiB7T3BlbkJyYWNrZXQgQU45Ok51bWJlciBDbG9zZUJyYWNr ZXQgPDxBcnJheU51bSA9IA0KPiA+ID4gX1NUT1UzMihBTjktPmdldFRleHQoKSwgQU45LT5nZXRM aW5lKCkpOz4+fS0gPDwgVHlwZU5hbWUgPQ0KPiA+ID4gUi0+Z2V0VGV4dCgpOyBMaW5lTnVtID0g Ui0+Z2V0TGluZSgpOyBJc1N0cnVjdCA9IFRSVUU7Pj4NCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiA+IFR5cGVOYW1lID0N Cj4gPiA+ICsgUi0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gUi0NCj4gPiA+ID5nZXRMaW5lKCk7IElz U3RydWN0ID0gVFJVRTs+PiAgICAgICB8IFROOlN0cmluZ0lkZW50aWZpZXIge09wZW5CcmFja2V0 DQo+ID4gPiBBTjEwOk51bWJlciBDbG9zZUJyYWNrZXQgPDxBcnJheU51bSA9IF9TVE9VMzIoQU4x MC0+Z2V0VGV4dCgpLA0KPiA+IEFOMTAtDQo+ID4gPiA+Z2V0TGluZSgpKTs+Pn0NCj4gPiA8PCBU eXBlTmFtZSA9IFROLT5nZXRUZXh0KCk7DQo+ID4gPiBMaW5lTnVtID0gVE4tPmdldExpbmUoKTsg SXNTdHJ1Y3QgPSBUUlVFOz4+ICAgICApQEAgLTg3NSwxOSArODc2LDE5DQo+ID4gQEANCj4gPiA+ IHZmckV4dGVuc2lvbkRhdGFbVUlOVDggKkRhdGFCdWZmLCBVSU5UMzIgU2l6ZSwgQ0hBUjggKlR5 cGVOYW1lLA0KPiA+IFVJTlQzMg0KPiA+ID4gVHlwZVNpemUsDQo+ID4gPiAgICAgICAgICAgICAg ICAgIG1lbWNweSAoQnl0ZU9mZnNldCwgJkRhdGFfVTY0LA0KPiA+IFR5cGVTaXplKTsgICAgICAg ICAgICAgICB9ZWxzZSBpZiAoc3RyY21wDQo+ID4gPiAoIlVJTlQzMiIsIFR5cGVOYW1lKSA9PSAw KSB7ICAgICAgICAgICAgICAgICBEYXRhX1UzMiA9DQo+ID4gX1NUT1UzMihSRC0+Z2V0VGV4dCgp LA0KPiA+ID4gUkQtPmdldExpbmUoKSk7LSAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZz ZXQsICZEYXRhX1UzMiwNCj4gPiBUeXBlU2l6ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgIG1l bWNweSAoQnl0ZU9mZnNldCwgJkRhdGFfVTMyLA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAg ICB9ZWxzZSBpZiAoc3RyY21wDQo+ID4gPiAoIlVJTlQxNiIsIFR5cGVOYW1lKSA9PSAwKSB7ICAg ICAgICAgICAgICAgICBEYXRhX1UxNiA9DQo+ID4gX1NUT1UxNihSRC0+Z2V0VGV4dCgpLA0KPiA+ ID4gUkQtPmdldExpbmUoKSk7LSAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZE YXRhX1UxNiwNCj4gPiBUeXBlU2l6ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAo Qnl0ZU9mZnNldCwgJkRhdGFfVTE2LA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ZWxz ZSBpZiAoc3RyY21wDQo+ID4gPiAoIlVJTlQ4IiwgVHlwZU5hbWUpID09IDApIHsgICAgICAgICAg ICAgICAgIERhdGFfVTggPQ0KPiA+IF9TVE9VOChSRC0+Z2V0VGV4dCgpLCBSRC0NCj4gPiA+ID5n ZXRMaW5lKCkpOy0gICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9VOCwN Cj4gVHlwZVNpemUpOw0KPiA+ID4gKyAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQs ICZEYXRhX1U4LA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ZWxzZSBpZiAoc3RyY21w DQo+ID4gPiAoIkJPT0xFQU4iLCBUeXBlTmFtZSk9PSAwKSB7ICAgICAgICAgICAgICAgICBEYXRh X0JMID0NCj4gPiBfU1RPVTgoUkQtPmdldFRleHQoKSwNCj4gPiA+IFJELT5nZXRMaW5lKCkpOy0g ICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9CTCwNCj4gPiBUeXBlU2l6 ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNldCwgJkRhdGFfQkws DQo+ID4gVHlwZVNpemUpOyAgICAgICAgICAgICAgIH1lbHNlIGlmIChzdHJjbXANCj4gPiA+ICgi RUZJX1NUUklOR19JRCIsIFR5cGVOYW1lKSA9PSAwKSB7ICAgICAgICAgICAgICAgICBEYXRhX1NJ RCA9DQo+ID4gX1NUT1NJRChSRC0NCj4gPiA+ID5nZXRUZXh0KCksIFJELT5nZXRMaW5lKCkpOy0g ICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LA0KPiA+ICZEYXRhX1NJRCwNCj4gPiA+ IFR5cGVTaXplKTsNCj4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNldCwNCj4g PiA+ICZEYXRhX1NJRCwgVHlwZVNpemUpOyAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgfSBl bHNlDQo+ID4gPiB7ICAgICAgICAgICAgICAgZ0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFGaWVs ZEluZm8oVEZOYW1lLA0KPiA+IEZpZWxkT2Zmc2V0LA0KPiA+ID4gRmllbGRUeXBlLCBGaWVsZFNp emUsIEJpdEZpZWxkKTtAQCAtOTc1LDcgKzk3NiwxNSBAQA0KPiA+ID4gdmZyRXh0ZW5zaW9uRGF0 YVtVSU5UOCAqRGF0YUJ1ZmYsIFVJTlQzMiBTaXplLCBDSEFSOCAqVHlwZU5hbWUsDQo+ID4gVUlO VDMyDQo+ID4gPiBUeXBlU2l6ZSwNCj4gPiA+ICAgdmZyU3RhdGVtZW50RGVmYXVsdFN0b3JlIDog ICA8PCBVSU5UMTYgIERlZmF1bHRJZCA9DQo+ID4gPiBFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RB TkRBUkQ7ID4+LSAgRDpEZWZhdWx0U3RvcmUNCj4gPiBOOlN0cmluZ0lkZW50aWZpZXINCj4gPiA+ ICIsIisgIEQ6RGVmYXVsdFN0b3JlIE46U3RyaW5nSWRlbnRpZmllciAiLCIgICAgICAgICAgICAg PDwrDQo+ID4gPiBpZiAobUlzQ2F0Y2hEZWZhdWx0RW5hYmxlKSB7Kw0KPiA+ID4gZ0NWZnJFcnJv ckhhbmRsZS5IYW5kbGVXYXJuaW5nICgrDQo+ID4gPiBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCwr DQo+ID4gRC0NCj4gPiA+ID5nZXRMaW5lKCksKw0KPiA+IEQtDQo+ID4gPiA+Z2V0VGV4dCgpKw0K PiA+ICAgICAgICApOysNCj4gPiAgfSsNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA+Pg0KPiA+IFByb21wdCAiPSIgIlNUUklOR19UT0tF TiIgIlwoIiBTOk51bWJlcg0KPiA+ID4gIlwpIiAgIHsgICAgICIsIiBBdHRyaWJ1dGUgIj0iIEE6 TnVtYmVyICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gRGVmYXVsdElkID0gX1NUT1UxNihB LQ0KPiA+ID4gPmdldFRleHQoKSwgQS0+Z2V0TGluZSgpKTsgPj5AQCAtMTA3NCw3ICsxMDgzLDcg QEANCj4gPiA+IHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gPiA+ICAgICAgfCBVNjQ6IlVJ TlQ2NCIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBUeXBlTmFtZSA9 IFU2NC0+Z2V0VGV4dCgpOw0KPiA+ID4gTGluZU51bSA9IFU2NC0+Z2V0TGluZSgpOyA+PiAgICAg fCBEOiJFRklfSElJX0RBVEUiICIsIg0KPiA+IDw8DQo+ID4gPiBUeXBlTmFtZSA9IEQtPmdldFRl eHQoKTsgTGluZU51bSA9IEQtPmdldExpbmUoKTsgPj4gICAgIHwNCj4gPiBUOiJFRklfSElJX1RJ TUUiDQo+ID4gPiAiLCIgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFR5cGVOYW1lID0gVC0+ Z2V0VGV4dCgpOyBMaW5lTnVtDQo+ID0NCj4gPiBULT5nZXRMaW5lKCk7ID4+LSAgICB8DQo+ID4g PiBSOiJFRklfSElJX1JFRiIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHlwZU5h bWUgPQ0KPiA+IFItPmdldFRleHQoKTsgTGluZU51bSA9IFItDQo+ID4gPiA+Z2V0TGluZSgpOyA+ PiAgICArICAgIHwgUjoiRUZJX0hJSV9SRUYiICIsIg0KPiA+IDw8IFR5cGVOYW1lID0gUi0NCj4g PiA+ID5nZXRUZXh0KCk7IExpbmVOdW0gPSBSLT5nZXRMaW5lKCk7ID4+ICAgKSAgIHsgICAgIFZh cklkICI9Ig0KPiBJRDpOdW1iZXINCj4gPiAiLCINCj4gPiA+IDw8QEAgLTEwOTIsOCArMTEwMSw4 IEBAIHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gPiA+ICAgICggICAgIE5hbWUgICAgIj0i IFNOOlN0cmluZ0lkZW50aWZpZXIgIiwiICAgICAgICAgICAgIDw8DQo+ID4gU3RvcmVOYW1lID0g U04tDQo+ID4gPiA+Z2V0VGV4dCgpOyAgID4+ICAgIHwtICAgIE5hbWUgICAgIj0iICJTVFJJTkdf VE9LRU4iICJcKCINCj4gPiBWTjpOdW1iZXIgIlwpIiAiLCIgIC0NCj4gPiA+IFZhclNpemUgIj0i IE46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgIDw8ICsgICAgTmFtZQ0KPiA+ICI9 IiAiU1RSSU5HX1RPS0VOIg0KPiA+ID4gIlwoIiBWTjpOdW1iZXIgIlwpIiAiLCIrICAgIFZhclNp emUgIj0iIE46TnVtYmVyICIsIg0KPiA+IDw8DQo+ID4gPiBJc1VFRkkyM0VmaVZhcnN0b3JlID0g RkFMU0U7DQo+ID4gU3RvcmVOYW1lID0NCj4gPiA+IGdDVmZyU3RyaW5nREIuR2V0VmFyU3RvcmVO YW1lRm9ybVN0cmluZ0lkKF9TVE9TSUQoVk4tPmdldFRleHQoKSwNCj4gVk4tDQo+ID4gPiA+Z2V0 TGluZSgpKSk7DQo+ID4gaWYgKFN0b3JlTmFtZSA9PSBOVUxMKSB7QEAgLQ0KPiA+ID4gMTExNiw3 ICsxMTI1LDcgQEAgdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkgOg0KPiA+ID4NCj4gPiBicmVhazsN Cj4gPiBjYXNlIDg6DQo+ID4gPiBUeXBlTmFtZSA9IChDSEFSOCAqKSAiVUlOVDY0IjstDQo+ID4g YnJlYWs7ICsNCj4gPiA+IGJyZWFrOw0KPiA+IGRlZmF1bHQ6DQo+ID4gPiBfUENBVENIIChWRlJf UkVUVVJOX1VOU1VQUE9SVEVELCBOKTsgYnJlYWs7QEAgLTExMjQsNyArMTEzMyw3DQo+IEBADQo+ ID4gPiB2ZnJTdGF0ZW1lbnRWYXJTdG9yZUVmaSA6DQo+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+ICAgKQ0KPiAtDQo+ID4gVXVpZCAi PSIgZ3VpZERlZmluaXRpb25bR3VpZF0NCj4gPiA+IDw8ICsgIFV1aWQgIj0iIGd1aWREZWZpbml0 aW9uW0d1aWRdICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+IGlmIChJc1VFRkkyM0VmaVZh cnN0b3JlKQ0KPiA+ID4NCj4gPg0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfUENBVA0KPiA+IENIKGdDVmZyRGF0YVN0b3JhZ2UuRGVj bGFyZUJ1ZmZlclZhclMNCj4gPiA+IHRvcmUNCj4gPiAoDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmVOYW1lLEBAIC0xMTUwLDcNCj4gPiA+ICsxMTU5LDcgQEAgdmZyU3RhdGVtZW50 VmFyU3RvcmVFZmkgOg0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IA0KPiA+ID4gVlNFT2JqLlNldEd1aWQgKCZHdWlkKTsNCj4g PiBWU0VPYmouU2V0VmFyU3RvcmVJZA0KPiA+ID4gKFZhclN0b3JlSWQpOy0NCj4gPiArDQo+ID4g PiBWU0VPYmouU2V0U2l6ZSAoKFVJTlQxNikgU2l6ZSk7DQo+ID4gPiBWU0VPYmouU2V0TmFtZSAo U3RvcmVOYW1lKTsNCj4gPiBpZg0KPiA+ID4gKElzVUVGSTIzRWZpVmFyc3RvcmUgPT0gRkFMU0Ug JiYgU3RvcmVOYW1lICE9IE5VTEwpIHtAQCAtMTE4NCw3DQo+ID4gPiArMTE5Myw3IEBAIHZmclN0 YXRlbWVudFZhclN0b3JlTmFtZVZhbHVlIDoNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gICB9DQo+ID4gKC0gICAgTmFtZSAiPSIg IlNUUklOR19UT0tFTiIgIlwoIg0KPiA+ID4gTjpOdW1iZXIgIlwpIiAiLCIgIDw8ICsgICAgTmFt ZSAiPSIgIlNUUklOR19UT0tFTiIgIlwoIiBOOk51bWJlcg0KPiA+ICJcKSIgIiwiDQo+ID4gPiA8 PCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYNCj4gPiAoIUNyZWF0ZWQpDQo+ID4gPg0KPiA+DQo+IHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1BDDQo+ID4gQVRDSChnQ1ZmckRh dGFTdG9yYWdlLkRlY2xhcmVOYW1lVmFyDQo+ID4gPiBTdG9yZUJlZ2luIChTTi0+Z2V0VGV4dCgp LCBWYXJTdG9yZUlkKSwgU04pOyBDcmVhdGVkID0gVFJVRTtAQA0KPiA+ID4gLTEyNDUsMTIgKzEy NTQsMTIgQEAgdmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldCA6DQo+ID4gPiAgdmZyU3RhdGVt ZW50U3VwcHJlc3NJZkZvcm1TZXQgOiAgIDw8IENJZnJTdXBwcmVzc0lmIFNJT2JqOz4+DQo+ID4g TDpTdXBwcmVzc0lmDQo+ID4gPiA8PC0NCj4gPiBTSU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgp KTsgKw0KPiA+ID4NCj4gPiBTSU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsNCj4gPiAgICAg ICAgICAgICAgICAgICA+PiAgIHsgRkxBR1MgIj0iDQo+ID4gPiBmbGFnc0ZpZWxkICggIlx8IiBm bGFnc0ZpZWxkICkqICIsIiB9ICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblswXSAiOyINCj4gPiA+ IHZmckZvcm1TZXRMaXN0LSAgRTogRW5kSWYgKyAgRTogRW5kSWYgICAiOyINCj4gPiA8PA0KPiA+ ID4gQ1JUX0VORF9PUCAoRSk7ID4+ICAgOyBAQCAtMTQ5MSw3ICsxNTAwLDcgQEANCj4gPiB2ZnJR dWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4gPiA+IFtFRklfUVVFU1RJT05fSUQgJlFJZCwgVUlOVDMy ICZNYXNrLCBDSEFSOCAqJlZhcklkU3RyLA0KPiA+ID4gICAgKCAgICAgU04yOlN0cmluZ0lkZW50 aWZpZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBfU1RSQ0FUICgmVmFySWRT dHIsIFNOMi0NCj4gPiA+ID5nZXRUZXh0KCkpOyBMaW5lTm8gPSBTTjItPmdldExpbmUoKTsgPj4g ICAgICgtICAgICAgIi4iDQo+ID4gPDwgKw0KPiA+ID4gIi4iICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gX1NUUkNBVA0KPiA+ID4gKCZWYXJJZFN0ciwg Ii4iKTsNCj4gPiBpZg0KPiA+ID4gKG1Db25zdGFudE9ubHlJbkV4cHJlc3Npb24pDQo+ID4gPg0K PiA+DQo+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX1BDDQo+ID4gQVRDSChWRlJfUkVUVVJOX0NPTlNUQU5UX09OTFksDQo+ID4gPiBM aW5lTm8pO0BAIC0xNTE4LDcgKzE1MjcsNyBAQCB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUgDQo+ ID4gPiBbRUZJX1FVRVNUSU9OX0lEICZRSWQsIFVJTlQzMiAmTWFzaywgQ0hBUjggKiZWYXJJZFN0 ciwNCj4gPiA+ICAgIDsgIHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBlLCBFRklfSUZS X1RZUEVfVkFMVUUgJlZhbHVlLA0KPiA+ID4gQk9PTEVBTiAmTGlzdFR5cGVdIDotICA8PCAgKyAg PDwgICAgIEVGSV9HVUlEICAgIEd1aWQ7DQo+ID4gQk9PTEVBTiAgICAgTmVnYXRpdmUgPQ0KPiA+ ID4gRkFMU0U7ICAgICBCT09MRUFOICAgICBJbnREZWNTdHlsZSA9IEZBTFNFO0BAIC0xNjM0LDEx ICsxNjQzLDExDQo+ID4gQEANCj4gPiA+IHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBl LCBFRklfSUZSX1RZUEVfVkFMVUUgJlZhbHVlLA0KPiA+IEJPT0xFQU4NCj4gPiA+ICZMaXN0VHlw ZV0NCj4gPiA+ICAgIHwgWjpaZXJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPDwNCj4gPiAkVmFsdWUudTggICAgID0gX1NUT1U4KFotPmdldFRleHQoKSwgWi0NCj4g PiA+ID5nZXRMaW5lKCkpOyA+PiAgIHwgSE9VUjpOdW1iZXIgIjoiIE1JTlVURTpOdW1iZXIgIjoi DQo+ID4gU0VDT05EOk51bWJlciA8PA0KPiA+ID4gJFZhbHVlLnRpbWUgICA9IF9TVE9UKEhPVVIt PmdldFRleHQoKSwgTUlOVVRFLT5nZXRUZXh0KCksU0VDT05ELQ0KPiA+ID4gPmdldFRleHQoKSwg SE9VUi0+Z2V0TGluZSgpKTsgPj4gICB8IFlFQVI6TnVtYmVyICIvIiBNT05USDpOdW1iZXINCj4g PiAiLyINCj4gPiA+IERBWTpOdW1iZXIgICAgIDw8ICRWYWx1ZS5kYXRlICAgPSBfU1RPRChZRUFS LT5nZXRUZXh0KCksDQo+ID4gTU9OVEgtPmdldFRleHQoKSwNCj4gPiA+IERBWS0+Z2V0VGV4dCgp LCBZRUFSLT5nZXRMaW5lKCkpOyA+Pi0gIHwgUUk6TnVtYmVyIjsiIEZJOk51bWJlciI7Ig0KPiA+ ID4gZ3VpZERlZmluaXRpb25bR3VpZF0gIjsiICJTVFJJTkdfVE9LRU4iICJcKCIgRFA6TnVtYmVy ICJcKSIgKyAgfCANCj4gPiA+IFFJOk51bWJlciI7IiBGSTpOdW1iZXIiOyIgZ3VpZERlZmluaXRp b25bR3VpZF0gIjsiICJTVFJJTkdfVE9LRU4iICJcKCINCj4gPiA+IERQOk51bWJlciAiXCkiDQo+ ID4gPDwgJFZhbHVlLnJlZiAgICA9IF9TVE9SKFFJLQ0KPiA+ID4gPmdldFRleHQoKSwgRkktPmdl dFRleHQoKSwgJkd1aWQsIERQLT5nZXRUZXh0KCksIFFJLT5nZXRMaW5lKCkpOyA+PiAgIHwNCj4g PiA+ICJTVFJJTkdfVE9LRU4iICJcKCIgUzE6TnVtYmVyICJcKSIgICAgICAgICAgICAgIDw8ICRW YWx1ZS5zdHJpbmcgPQ0KPiA+IF9TVE9TSUQoUzEtDQo+ID4gPiA+Z2V0VGV4dCgpLCBTMS0+Z2V0 TGluZSgpKTsgPj4gICB8ICJceyINCj4gPiA8PCBMaXN0VHlwZSA9DQo+ID4gPiBUUlVFOyA+Pi0g ICAgICBMMTpOdW1iZXINCj4gPiA8PCArICAgICAgTDE6TnVtYmVyDQo+ID4gPiA8PA0KPiA+IHN3 aXRjaCAoVHlwZSkNCj4gPiA+DQo+ID4NCj4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlDQo+ID4gRUZJX0lGUl9UWVBFX05VTV9T SVpFXzggOg0KPiA+ID4gVHlwZThbSW5kZXhdICA9IF9TVE9VOChMMS0+Z2V0VGV4dCgpLCBMMS0+ Z2V0TGluZSgpKTtAQCAtMTY1OCw4DQo+ID4gPiArMTY2Nyw4IEBAIHZmckNvbnN0YW50VmFsdWVG aWVsZFtVSU5UOCBUeXBlLCBFRklfSUZSX1RZUEVfVkFMVUUNCj4gPiA+ICZWYWx1ZSwgQk9PTEVB TiAmTGlzdFR5cGVdDQo+ID4gPg0KPiA+DQo+IEluZGV4Kys7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pg0KPiA+ICgtDQo+ID4gPiAiLCIgLSAg ICAgICAgTDI6TnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCArDQo+ ID4gIiwiKyAgICAgICAgTDI6TnVtYmVyDQo+ID4gPiA8PA0KPiA+IHN3aXRjaCAoVHlwZSkNCj4g PiA+DQo+ID4NCj4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjYXNlDQo+ID4gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzggOg0KPiA+ID4g VHlwZThbSW5kZXhdICA9IF9TVE9VOChMMi0+Z2V0VGV4dCgpLCBMMi0+Z2V0TGluZSgpKTtAQCAt MTY3OSw3DQo+ID4gPiArMTY4OCw3IEBAIHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBl LCBFRklfSUZSX1RZUEVfVkFMVUUNCj4gPiA+ICZWYWx1ZSwgQk9PTEVBTiAmTGlzdFR5cGVdDQo+ ID4gPg0KPiA+ID4NCj4gPg0KPiBJbmRleCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPj4NCj4gPiAgICAgICAgKSotICAgICJcfSIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KPiA+ID4gIlx9IiAgIDsNCj4g PiA+DQo+ID4NCj4gLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioNCj4gPiAqKg0KPiA+ID4gKioqKioqKioqKioqKioqQEAgLTE3MTQs NyArMTcyMyw3IEBAIHZmckZvcm1EZWZpbml0aW9uIDoNCj4gPiA+ICAgIDsgIHZmckZvcm1NYXBE ZWZpbml0aW9uIDotICA8PCArICA8PCAgICAgQ0lmckZvcm1NYXAgKkZNYXBPYmoNCj4gPQ0KPiA+ IE5VTEw7DQo+ID4gPiBVSU5UMzIgICAgICBGb3JtTWFwTWV0aG9kTnVtYmVyID0gMDsgICAgIEVG SV9HVUlEDQo+IEd1aWQ7QEANCj4gPiAtMTc3NSwxMQ0KPiA+ID4gKzE3ODQsMTUgQEAgdmZyU3Rh dGVtZW50RGVmYXVsdCA6DQo+ID4gPiAgICAgICBDSWZyTnVtZXJpYyAgICAgICAgICAgKk51bWVy aWNRc3QgICA9IE5VTEw7ICAgID4+LQ0KPiA+IEQ6RGVmYXVsdA0KPiA+ID4gKyAgRDpEZWZhdWx0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCsNCj4gPiBpZg0KPiA+ ID4gKG1Jc0NhdGNoRGVmYXVsdEVuYWJsZSkgeysNCj4gPiA+IERlZmF1bHRWYWx1ZUVycm9yKFZG Ul9SRVRVUk5fVU5TVVBQT1JURUQsIEQtDQo+ID4gPiA+Z2V0TGluZSgpKTsrDQo+ID4gICAgICAg fSsNCj4gPj4NCj4gPiA+ICggICAgICgtICAgICAgIj0iIHZmckNvbnN0YW50VmFsdWVGaWVsZFtf R0VUX0NVUlJRRVNUX0RBVEFUWVBFKCksDQo+ID4gKlZhbCwNCj4gPiA+IEFycmF5VHlwZV0gIiwi ICAtDQo+ID4gPDwgKyAgICAgICI9Ig0KPiA+ID4gdmZyQ29uc3RhbnRWYWx1ZUZpZWxkW19HRVRf Q1VSUlFFU1RfREFUQVRZUEUoKSwgKlZhbCwgQXJyYXlUeXBlXQ0KPiAiLCIrDQo+ID4gPiA8PA0K PiBpZg0KPiA+IChnQ3VycmVudE1pbk1heERhdGEgIT0gTlVMTCAmJg0KPiA+ID4gZ0N1cnJlbnRN aW5NYXhEYXRhLT5Jc051bWVyaWNPcGNvZGUoKSkNCj4gPiA+DQo+ID4NCj4geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jDQo+ID4g aGVjayBkZWZhdWx0IHZhbHVlIGlzIHZhbGlkIGZvciBOdW1lcmljDQo+ID4gPiBPcGNvZGUNCj4g PiBOdW1lcmljUXN0ID0gKENJZnJOdW1lcmljICopDQo+ID4gPiBnQ3VycmVudFF1ZXN0aW9uO0BA IC0xODg4LDE0ICsxOTAxLDE0IEBAIHZmclN0YXRlbWVudERlZmF1bHQgOg0KPiA+ID4gICAgICAg ICAgdmZyU3RhdGVtZW50VmFsdWUgIiwiICAgICAgICAgICAgICAgICAgICAgICA8PCBDSWZyRW5k DQo+ID4gRW5kT2JqMTsNCj4gPiA+IEVuZE9iajEuU2V0TGluZU5vKEQtPmdldExpbmUoKSk7ID4+ ICAgICApICAgICB7LSAgICAgIERlZmF1bHRTdG9yZQ0KPiAiPSINCj4gPiA+IFNOOlN0cmluZ0lk ZW50aWZpZXIgIiwiICAgICAgPDwgKyAgICAgIERlZmF1bHRTdG9yZSAiPSINCj4gU046U3RyaW5n SWRlbnRpZmllcg0KPiA+ICIsIiAgICAgIDw8DQo+ID4gPiBfUENBVENIKGdDVmZyRGVmYXVsdFN0 b3JlLkdldERlZmF1bHRJZCAoU04tPmdldFRleHQoKSwgDQo+ID4gPiAmRGVmYXVsdElkKSwgU04p OyBpZiAoRE9iaiAhPSBOVUxMKSB7LQ0KPiA+IERPYmotPlNldERlZmF1bHRJZA0KPiA+ID4gKERl ZmF1bHRJZCk7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSArDQo+ID4gPiBET2JqLT5TZXREZWZhdWx0SWQNCj4gPiAoRGVmYXVs dElkKTsrDQo+ID4gICAgIH0NCj4gPiA+IGlmIChET2JqMiAhPSBOVUxMKSB7LQ0KPiA+IERPYmoy LT5TZXREZWZhdWx0SWQNCj4gPiA+IChEZWZhdWx0SWQpOyArDQo+ID4gRE9iajItPlNldERlZmF1 bHRJZA0KPiA+ID4NCj4gPiAoRGVmYXVsdElkKTsNCj4gPiAgICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4NCj4gPiA+ICB9QEAgLTE5MTcs OCArMTkzMCw4IEBAIHZmclN0YXRlbWVudERlZmF1bHQgOg0KPiA+ID4NCj4gPiAgICAgICAgICk7 DQo+ID4gICAgICB9DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LQ0KPiA+IGlmIChET2JqICAhPSBOVUxMKQ0KPiA+ID4ge2RlbGV0ZSBET2JqO30g LQ0KPiA+IGlmIChET2JqMiAhPSBOVUxMKSB7ZGVsZXRlDQo+ID4gPiBET2JqMjt9ICsNCj4gPiBp ZiAoRE9iaiAgIT0gTlVMTCkge2RlbGV0ZSBET2JqO30rDQo+ID4gPiBpZiAoRE9iajIgIT0gTlVM TCkge2RlbGV0ZQ0KPiA+DQo+IERPYmoyO30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID4+DQo+ID4gICApICAgO0BAIC0NCj4gPiA+IDE5NzAsMTEg KzE5ODMsMTUgQEAgdmZyU3RhdGVtZW50SW52YWxpZCA6DQo+ID4gPiAgICA7ICBmbGFnc0ZpZWxk IDotICBOdW1iZXIgLSAgfCBJbnRlcmFjdGl2ZUZsYWcgLSAgfCANCj4gPiA+IE1hbnVmYWN0dXJp bmdGbGFnIC0gIHwgRGVmYXVsdEZsYWcgLSAgfCBSZXNldFJlcXVpcmVkRmxhZyArICANCj4gPiA+ IE51bWJlcisNCj4gPiA+IHwgSW50ZXJhY3RpdmVGbGFnKyAgfA0KPiA+ID4gTWFudWZhY3R1cmlu Z0ZsYWcrICB8IEQ6RGVmYXVsdEZsYWcNCj4gPiA8PCsNCj4gPiA+IGlmIChtSXNDYXRjaERlZmF1 bHRFbmFibGUpIHsrDQo+ID4gPiBEZWZhdWx0VmFsdWVFcnJvcihWRlJfUkVUVVJOX1VOU1VQUE9S VEVELCBELQ0KPiA+ID4gPmdldExpbmUoKSk7Kw0KPiA+ICAgICAgICAgfSsNCj4gPiA+ID4+KyAg fCBSZXNldFJlcXVpcmVkRmxhZyAgIHwgUmVjb25uZWN0UmVxdWlyZWRGbGFnICAgfA0KPiA+IE46 TlZBY2Nlc3NGbGFnDQo+ID4gPiA8PA0KPiA+IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2Fybmlu ZyAoQEAgLQ0KPiA+ID4gMTk4OSw3ICsyMDA2LDcgQEAgZmxhZ3NGaWVsZCA6DQo+ID4gPg0KPiA+ ID4gTC0+Z2V0TGluZSgpLA0KPiA+ID4NCj4gPiBMLT5nZXRUZXh0KCkNCj4gPiAgICAgICAgICAp Oy0NCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA+Pg0KPiA+DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPj4gICA7DQo+ID4gPiB2ZnJTdGF0ZW1lbnRWYWx1ZSA6QEAgLTIw MDEsMTMgKzIwMTgsMTMgQEAgdmZyU3RhdGVtZW50VmFsdWUgOg0KPiA+ID4gIHZmclN0YXRlbWVu dFJlYWQgOiAgIDw8IENJZnJSZWFkIFJPYmo7ID4+ICAgUjpSZWFkDQo+ID4gPiA8PCBST2JqLlNl dExpbmVObyhSLT5nZXRMaW5lKCkpOyA+Pi0gIHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsi ICsNCj4gPiA+IHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICAgOyAgdmZyU3RhdGVtZW50 V3JpdGUgOiAgIDw8IENJZnJXcml0ZQ0KPiA+IFdPYmo7ID4+DQo+ID4gPiBXOldyaXRlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gV09iai5TZXRM aW5lTm8oVy0+Z2V0TGluZSgpKTsgPj4tDQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBd ICI7IiArICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBdICI7IiAgIDsNCj4gPiA+IHZmclN0YXRl bWVudFN1YlRpdGxlIDpAQCAtMjE0MCw3ICsyMTU3LDcgQEAgdmZyU3RhdGVtZW50R290byA6DQo+ ID4gPiAgICAgICAgRm9ybUlkICI9IiBGMzpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAg ICAgIDw8DQo+ID4gUmVmVHlwZSA9IDI7IEZJZCA9IF9TVE9GSUQoRjMtDQo+ID4gPiA+Z2V0VGV4 dCgpLCBGMy0+Z2V0TGluZSgpKTsgPj4gICAgICAgUXVlc3Rpb24gIj0iICAgICAgICgtDQo+ID4g UU4zOlN0cmluZ0lkZW50aWZpZXINCj4gPiA+ICIsIiAgICAgICAgICAgICAgICAgICAgIDw8ICsg ICAgICAgICAgUU4zOlN0cmluZ0lkZW50aWZpZXIgIiwiDQo+ID4gPDwNCj4gPiA+IG1DVmZyUXVl c3Rpb25EQi5HZXRRdWVzdGlvbklkIChRTjMtPmdldFRleHQgKCksIE5VTEwsIFFJZCwgDQo+ID4g PiBCaXRNYXNrKTsgaWYgKFFJZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRCkNCj4gPiA+DQo+ ID4gew0KPiA+IF9QQ0FUQ0goVkZSX1JFVFVSTl9VTkRFRklORUQsDQo+ID4gPiBRTjMpO0BAIC0y MjIyLDcgKzIyMzksNyBAQCB2ZnJTdGF0ZW1lbnRHb3RvIDoNCj4gPiA+ICAgICAgIiwiIEtleSAi PSIgS046TnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBBc3NpZ25R dWVzdGlvbktleSAoKlFIT2JqLA0KPiA+ID4gS04pOyA+PiAgIH0gICB7LSAgICBFOiIsIiArICAg IEU6IiwiDQo+ID4gdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0ICAgICAgICAgICAgICAg ICAgIDw8DQo+ID4gPiBPSE9iai0+U2V0U2NvcGUoMSk7IENSVF9FTkRfT1AgKEUpOz4+ICAgfSAg ICI7Ig0KPiA+ID4gPDwgaWYgKFIxT2JqICE9IE5VTEwpIHtkZWxldGUgUjFPYmo7fSBpZiAoUjJP YmogIT0gTlVMTCkge2RlbGV0ZSANCj4gPiA+IFIyT2JqO30gaWYgKFIzT2JqICE9IE5VTEwpIHtk ZWxldGUgUjNPYmo7fSBpZiAoUjRPYmogIT0gTlVMTCkgDQo+ID4gPiB7ZGVsZXRlIFI0T2JqO30g aWYgKFI1T2JqICE9DQo+ID4gPiBOVUxMKSB7ZGVsZXRlIFI1T2JqO30+PkBAIC0yNTExLDIwICsy NTI4LDIwIEBAIA0KPiA+ID4gbWluTWF4RGF0ZVN0ZXBEZWZhdWx0W0VGSV9ISUlfREFURSAmIEQs IFVJTlQ4IEtleVZhbHVlXSA6DQo+ID4gPiAgICB7ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVy ICIsIiAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiA+ID4gc3dpdGNoIChLZXlWYWx1ZSkg ey0NCj4gPiBjYXNlIDA6ICsNCj4gPiA+IGNhc2UgMDoNCj4gPiBELlllYXIgID0gX1NUT1UxNihO LT5nZXRUZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5ZZWFyIDwgX1NU T1UxNiAoTWluTi0NCj4gPiA+ID5nZXRUZXh0KCksIE1pbk4tPmdldExpbmUoKSkgfHwgRC5ZZWFy ID4gX1NUT1UxNiAoTWF4Ti0+Z2V0VGV4dCgpLA0KPiA+ID4gPk1heE4tDQo+ID4gPiA+Z2V0TGlu ZSgpKSkNCj4gPiB7DQo+ID4gICBfUENBVENIDQo+ID4gPiAoVkZSX1JFVFVSTl9JTlZBTElEX1BB UkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiWWVhciBkZWZhdWx0IHZhbHVlDQo+ID4gbXVzdA0KPiA+ ID4gYmUgYmV0d2VlbiBNaW4geWVhciBhbmQgTWF4DQo+ID4geWVhci4iKTsNCj4gPiAgICAgIH0N Cj4gPiA+IGJyZWFrOy0NCj4gPiBjYXNlIDE6IC0NCj4gPiA+IEQuTW9udGggPSBfU1RPVTgoTi0+ Z2V0VGV4dCgpLCBOLT5nZXRMaW5lKCkpOyArIGNhc2UgMTorDQo+ID4gRC5Nb250aCA9IF9TVE9V OChOLT5nZXRUZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5Nb250aCA8 IDEgfHwgRC5Nb250aCA+IDEyKQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENBVENIDQo+ID4gPiAo VkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiTW9udGggZGVmYXVs dCB2YWx1ZSANCj4gPiA+IG11c3QgYmUgYmV0d2VlbiAxIGFuZA0KPiA+IDEyLiIpOw0KPiA+ICAg ICB9DQo+ID4gPiBicmVhazstDQo+ID4gY2FzZSAyOiAtDQo+ID4gPiBELkRheSA9IF9TVE9VOChO LT5nZXRUZXh0KCksIE4tPmdldExpbmUoKSk7ICsgY2FzZSAyOisNCj4gPiBELkRheSA9IF9TVE9V OChOLT5nZXRUZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5EYXkgPCAx IHx8IEQuRGF5ID4gMzEpDQo+ID4gPg0KPiA+IHsNCj4gPiAgIF9QQ0FUQ0gNCj4gPiA+IChWRlJf UkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJEYXkgZGVmYXVsdCB2YWx1 ZQ0KPiA+IG11c3QNCj4gPiA+IGJlIGJldHdlZW4gMSBhbmQNCj4gPiAzMS4iKTsNCj4gPiAgICAg fUBAIC0yNTcwLDcNCj4gPiA+ICsyNTg3LDcgQEAgdmZyU2V0TWluTWF4U3RlcFtDSWZyTWluTWF4 U3RlcERhdGEgJiBNTVNET2JqXSA6DQo+ID4gPiAgICAgICBCT09MRUFOIE1pbk5lZ2F0aXZlID0g RkFMU0U7ICAgICAgQk9PTEVBTiBNYXhOZWdhdGl2ZSA9DQo+ID4gRkFMU0U7ICAgPj4tDQo+ID4g PiBNaW5pbXVtICAgIj0iICsgIE1pbmltdW0gICAiPSIgICB7ICAgICAiXC0iDQo+ID4gPDwNCj4g PiA+IE1pbk5lZ2F0aXZlID0gVFJVRTsgPj4gICB9QEAgLTI2NTksOCArMjY3Niw4IEBADQo+ID4g PiB2ZnJTZXRNaW5NYXhTdGVwW0NJZnJNaW5NYXhTdGVwRGF0YSAmIE1NU0RPYmpdIDoNCj4gPiA+ DQo+ID4gIH0NCj4gIH0NCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPj4tICBNYXhpbXVtICAgIj0iIC0NCj4gPiB7ICsgIE1heGltdW0gICAiPSIrICB7ICAgICAi XC0iDQo+ID4gPiA8PCBNYXhOZWdhdGl2ZSA9IFRSVUU7ID4+ICAgfSAgIEE6TnVtYmVyICIsIg0K PiA+IDw8QEAgLQ0KPiA+ID4gMjg4OSw3ICsyOTA2LDcgQEAgdmZyU3RhdGVtZW50TnVtZXJpYyA6 DQo+ID4gPg0KPiAgfQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPj4NCj4gPiA+IHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlz dC0gIEU6RW5kTnVtZXJpYw0KPiA+IDw8ICsNCj4gPiA+IEU6RW5kTnVtZXJpYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+IENSVF9FTkRfT1AgKEUpOw0K PiA+IGlmIChHdWlkT2JqICE9IE5VTEwpDQo+ID4gPg0KPiA+IHsNCj4gPiBHdWlkT2JqLT5TZXRT Y29wZSgxKTtAQCAtMzEzMSw3DQo+ID4gPiArMzE0OCw3IEBAIHZmclN0YXRlbWVudFN0cmluZyA6 DQo+ID4gPiAgICB7ICAgICBLZXkgIj0iIEtOOk51bWJlciAiLCIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8PA0KPiA+IEFzc2lnblF1ZXN0aW9uS2V5IChTT2JqLA0KPiA+ID4gS04pOyA+ PiAgIH0tICBNaW5TaXplICI9IiBNSU46TnVtYmVyICIsIg0KPiA+IDw8ICsgIE1pblNpemUgIj0i DQo+ID4gPiBNSU46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4g PiBWYXJBcnJheVNpemUgPSBfR0VUX0NVUlJRRVNUX0FSUkFZX1NJWkUoKTsgU3RyaW5nTWluU2l6 ZSA9IA0KPiA+ID4gX1NUT1U4KE1JTi0+Z2V0VGV4dCgpLCBNSU4tPmdldExpbmUoKSk7IGlmIA0K PiA+ID4gKF9TVE9VNjQoTUlOLT5nZXRUZXh0KCksDQo+ID4gPiBNSU4tPmdldExpbmUoKSkgPiBT dHJpbmdNaW5TaXplKSB7QEAgLTMxNDEsNw0KPiA+ID4gKzMxNTgsNyBAQCB2ZnJTdGF0ZW1lbnRT dHJpbmcgOg0KPiA+ID4NCj4gIH0NCj4gPiA+IFNPYmouU2V0TWluU2l6ZQ0KPiA+IChTdHJpbmdN aW5TaXplKTsNCj4gPiAgICAgICAgPj4tICBNYXhTaXplDQo+ID4gPiAiPSIgTUFYOk51bWJlciAi LCIgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCArICBNYXhTaXplICI9Ig0KPiA+IE1BWDpO dW1iZXIgIiwiDQo+ID4gPiA8PA0KPiA+IFN0cmluZ01heFNpemUgPSBfU1RPVTgoTUFYLT5nZXRU ZXh0KCksDQo+ID4gPiBNQVgtPmdldExpbmUoKSk7DQo+ID4gaWYgKF9TVE9VNjQoTUFYLQ0KPiA+ ID4gPmdldFRleHQoKSwgTUFYLT5nZXRMaW5lKCkpID4gU3RyaW5nTWF4U2l6ZSkNCj4gPiA+DQo+ ID4gew0KPiA+IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBN QVgtPmdldExpbmUoKSwgIlN0cmluZyBNYXhTaXplDQo+ID4gdGFrZXMNCj4gPiA+IG9ubHkgb25l IGJ5dGUsIHdoaWNoIGNhbid0IGJlIGxhcmdlciB0aGFuIDB4RkYuIik7QEAgLTMxODUsNyANCj4g PiA+ICszMjAyLDcgQEAgdmZyU3RhdGVtZW50UGFzc3dvcmQgOg0KPiA+ID4gICAgeyAgICAgS2V5 ICI9IiBLTjpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBB c3NpZ25RdWVzdGlvbktleSAoUE9iaiwNCj4gPiA+IEtOKTsgPj4gICB9LSAgTWluU2l6ZSAiPSIg TUlOOk51bWJlciAiLCINCj4gPiA8PCArICBNaW5TaXplICI9Ig0KPiA+ID4gTUlOOk51bWJlciAi LCIgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiA+ID4gVmFyQXJyYXlTaXplID0gX0dF VF9DVVJSUUVTVF9BUlJBWV9TSVpFKCk7IFBhc3N3b3JkTWluU2l6ZSA9IA0KPiA+ID4gX1NUT1Ux NihNSU4tPmdldFRleHQoKSwgTUlOLT5nZXRMaW5lKCkpOyBpZiANCj4gPiA+IChfU1RPVTY0KE1J Ti0+Z2V0VGV4dCgpLA0KPiA+ID4gTUlOLT5nZXRMaW5lKCkpID4gUGFzc3dvcmRNaW5TaXplKSB7 QEAgLQ0KPiA+ID4gMzE5NSw3ICszMjEyLDcgQEAgdmZyU3RhdGVtZW50UGFzc3dvcmQgOg0KPiA+ ID4NCj4gIH0NCj4gPiA+IFBPYmouU2V0TWluU2l6ZQ0KPiA+IChQYXNzd29yZE1pblNpemUpOw0K PiA+ICAgICAgICAgICA+Pi0NCj4gPiA+IE1heFNpemUgIj0iIE1BWDpOdW1iZXIgIiwiICAgICAg ICAgICAgICAgICAgICAgICAgICAgPDwgKw0KPiA+IE1heFNpemUgIj0iIE1BWDpOdW1iZXINCj4g PiA+ICIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gUGFzc3dvcmRNYXhTaXpl ID0NCj4gPiA+IF9TVE9VMTYoTUFYLT5nZXRUZXh0KCksIE1BWC0+Z2V0TGluZSgpKTsNCj4gPiBp Zg0KPiA+ID4gKF9TVE9VNjQoTUFYLT5nZXRUZXh0KCksIE1BWC0+Z2V0TGluZSgpKSA+IFBhc3N3 b3JkTWF4U2l6ZSkNCj4gPiA+DQo+ID4gew0KPiA+IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJO X0lOVkFMSURfUEFSQU1FVEVSLCBNQVgtPmdldExpbmUoKSwgIlBhc3N3b3JkDQo+IE1heFNpemUN Cj4gPiB0YWtlcw0KPiA+ID4gb25seSB0d28gYnl0ZSwgd2hpY2ggY2FuJ3QgYmUgbGFyZ2VyIHRo YW4gMHhGRkZGLiIpO0BAIC0zMjMwLDEyDQo+ID4gPiArMzI0NywxMiBAQCB2ZnJTdGF0ZW1lbnRP cmRlcmVkTGlzdCA6DQo+ID4gPiAgICA+PiAgIEw6T3JkZXJlZExpc3QNCj4gPiA8PCBPTE9iai5T ZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsNCj4gPiA+IGdJc09yZGVyZWRMaXN0ID0gVFJVRTs+PiAg IHZmclF1ZXN0aW9uSGVhZGVyW09MT2JqXSAiLCItDQo+ID4gPiA8PCArDQo+IDw8DQo+ID4gPiBW YXJBcnJheVNpemUgPSBfR0VUX0NVUlJRRVNUX0FSUkFZX1NJWkUoKTsgT0xPYmouU2V0TWF4Q29u dGFpbmVycw0KPiA+ID4gKChVSU5UOCkgKFZhckFycmF5U2l6ZSA+IDB4RkYgPyAweEZGIDoNCj4g PiA+DQo+ID4gVmFyQXJyYXlTaXplKSk7DQo+ID4gICAgICAgPj4gICB7LSAgICBNYXhDb250YWlu ZXJzICI9Ig0KPiA+ID4gTTpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgPDwgKyAgICBN YXhDb250YWluZXJzICI9Ig0KPiA+IE06TnVtYmVyICIsIg0KPiA+ID4gPDwNCj4gPiBpZiAoX1NU T1U2NChNLT5nZXRUZXh0KCksIE0tPmdldExpbmUoKSkgPg0KPiA+ID4gX1NUT1U4KE0tPmdldFRl eHQoKSwgTS0+Z2V0TGluZSgpKSkNCj4gPiA+DQo+ID4gew0KPiA+IF9QQ0FUQ0gNCj4gPiA+IChW RlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBNLT5nZXRMaW5lKCksICJPcmRlcmVkTGlzdCAN Cj4gPiA+IE1heENvbnRhaW5lcnMgdGFrZXMgb25seSBvbmUgYnl0ZSwgd2hpY2ggY2FuJ3QgYmUg bGFyZ2VyIHRoYW4NCj4gPiA+DQo+ID4gMHhGRi4iKTsNCj4gPiAgICB9IGVsc2UgaWYgKFZhckFy cmF5U2l6ZSAhPSAwICYmDQo+ID4gPiBfU1RPVTgoTS0+Z2V0VGV4dCgpLCBNLT5nZXRMaW5lKCkp ID4gVmFyQXJyYXlTaXplKSB7QEAgLTMzMjgsMTkNCj4gPiA+ICszMzQ1LDE5IEBAIG1pbk1heFRp bWVTdGVwRGVmYXVsdFtFRklfSElJX1RJTUUgJiBULCBVSU5UOA0KPiA+IEtleVZhbHVlXSA6DQo+ ID4gPiAgICB7ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAg ICAgICAgICA8PA0KPiA+ID4gc3dpdGNoIChLZXlWYWx1ZSkgey0NCj4gPiBjYXNlIDA6IC0NCj4g PiA+IFQuSG91ciAgID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsgKw0KPiA+ ID4gY2FzZSAwOisNCj4gPiBULkhvdXIgICA9IF9TVE9VOChOLT5nZXRUZXh0KCksIE4tDQo+ID4g PiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoVC5Ib3VyID4gMjMpDQo+ID4gPg0KPiA+IHsNCj4gPiAg IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5l KCksICJIb3VyIGRlZmF1bHQgdmFsdWUNCj4gPiBtdXN0DQo+ID4gPiBiZSBiZXR3ZWVuIDAgYW5k DQo+ID4gMjMuIik7DQo+ID4gICAgIH0NCj4gPiA+IGJyZWFrOy0NCj4gPiBjYXNlIDE6IC0NCj4g PiA+IFQuTWludXRlID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsgKyBjYXNl IDE6Kw0KPiA+IFQuTWludXRlID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0NCj4gPiA+ID5nZXRM aW5lKCkpOw0KPiA+IGlmIChULk1pbnV0ZSA+IDU5KQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENB VENIDQo+ID4gPiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAi TWludXRlIGRlZmF1bHQgdmFsdWUgDQo+ID4gPiBtdXN0IGJlIGJldHdlZW4gMCBhbmQNCj4gPiA1 OS4iKTsNCj4gPiAgICAgfQ0KPiA+ID4gYnJlYWs7LQ0KPiA+IGNhc2UgMjogKw0KPiA+ID4gY2Fz ZSAyOg0KPiA+IFQuU2Vjb25kID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0NCj4gPiA+ID5nZXRM aW5lKCkpOw0KPiA+IGlmIChULlNlY29uZCA+IDU5KQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENB VENIDQo+ID4gPiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAi U2Vjb25kIGRlZmF1bHQgdmFsdWUgDQo+ID4gPiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNTkuIik7 QEAgLTM0MTksMTEgKzM0MzYsMTEgQEAgDQo+ID4gPiB2ZnJTdGF0ZW1lbnRTdGF0TGlzdE9sZCA6 DQo+ID4gPiAgICA7ICB2ZnJTdGF0ZW1lbnREaXNhYmxlSWZTdGF0IDotICA8PCAtICAgIENJZnJE aXNhYmxlSWYgRElPYmo7ICsgIDw8Kw0KPiA+ID4gQ0lmckRpc2FibGVJZiBESU9iajsgICA+PiAg IEw6RGlzYWJsZUlmDQo+ID4gPDwNCj4gPiA+IERJT2JqLlNldExpbmVObyhMLT5nZXRMaW5lKCkp OyA+Pi0gIHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICsNCj4gPiA+IHZmclN0YXRlbWVu dEV4cHJlc3Npb25bMF0gIjsiICAgKCB2ZnJTdGF0ZW1lbnRTdGF0TGlzdCApKiAgIEU6RW5kSWYN Cj4gPiA+IDw8IENSVF9FTkRfT1AgKEUpOyA+PiAgICI7IkBAIC0zNTQ4LDggKzM1NjUsOCBAQA0K PiA+ID4gdmZyU3RhdGVtZW50V2FybmluZ0lmIDoNCj4gPiA+ICAgIDsgIHZmclN0YXRlbWVudERp c2FibGVJZlF1ZXN0IDotICA8PCAtICAgIENJZnJEaXNhYmxlSWYgRElPYmo7ICsNCj4gPiA8PCsN Cj4gPiA+IENJZnJEaXNhYmxlSWYgRElPYmo7ICAgPj4gICBMOkRpc2FibGVJZg0KPiA+IDw8DQo+ ID4gPiBESU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsgPj4gICB2ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uWzBdICI7IkBAIC0NCj4gPiA+IDM2MTYsMTUgKzM2MzMsMTUgQEAgdmZyU3RhdGVtZW50 T25lT2ZPcHRpb24gOg0KPiA+ID4gICAgICAgVUlOVDMyICAgICAgICAgICAgICpUeXBlMzIgICAg ICAgPSAoVUlOVDMyICopIFZhbHVlTGlzdDsNCj4gPiBVSU5UNjQNCj4gPiA+ICpUeXBlNjQgICAg ICAgPSAoVUlOVDY0ICopIFZhbHVlTGlzdDsgICA+Pi0gIEw6T3B0aW9uDQo+ID4gPDwNCj4gPiA+ ICsgIEw6T3B0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PDwNCj4gPiBpZg0KPiA+ID4gKF9HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSA9PSBFRklfSUZSX1RZ UEVfT1RIRVIpDQo+ID4gPg0KPiA+IHsNCj4gPiBfUENBVENIIChWRlJfUkVUVVJOX0ZBVEFMX0VS Uk9SLCBMLQ0KPiA+ID4gPmdldExpbmUoKSwgIkdldCBkYXRhIHR5cGUNCj4gPiA+DQo+ID4gZXJy b3IuIik7DQo+ID4gICAgfQ0KPiAgPg0KPiA+ID4tDQo+ID4gPiBUZXh0ICAiPSIgIlNUUklOR19U T0tFTiIgIlwoIiBTOk51bWJlciAiXCkiICIsIiAgICAgICsgIFRleHQgICI9Ig0KPiA+ID4gIlNU UklOR19UT0tFTiIgIlwoIiBTOk51bWJlciAiXCkiICIsIiAgIFZhbHVlICI9Ig0KPiA+ID4gdmZy Q29uc3RhbnRWYWx1ZUZpZWxkW19HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwgKlZhbCwgQXJyYXlU eXBlXSANCj4gPiA+IiwiLSAgPDwgKw0KPiA8PA0KPiA+IGlmDQo+ID4gPiAoZ0N1cnJlbnRNaW5N YXhEYXRhICE9IE5VTEwpDQo+ID4gew0KPiA+IC8vc2V0DQo+ID4gPiBtaW4vbWF4IHZhbHVlIGZv ciBvbmVvZiBvcGNvZGUNCj4gPiBVSU5UNjQNCj4gPiA+IFN0ZXAgPQ0KPiBnQ3VycmVudE1pbk1h eERhdGEtPkdldFN0ZXBEYXRhKF9HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwNCj4gPiA+IF9HRVRf Q1VSUlFFU1RfVkFSVElORk8oKS5tSXNCaXRWYXIpO0BAIC0zNjk2LDcgKzM3MTMsNyBAQCANCj4g PiA+IHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gPiA+DQo+ID4gU2l6ZSArPSBPRkZTRVRf T0YNCj4gPiA+IChFRklfSUZSX09ORV9PRl9PUFRJT04sIFZhbHVlKTsNCj4gPiBPT09PYmogPQ0K PiA+ID4gbmV3IENJZnJPbmVPZk9wdGlvbigoVUlOVDgpU2l6ZSk7DQo+ID4gT09PT2JqLQ0KPiA+ ID4gPlNldExpbmVObyhMLT5nZXRMaW5lKCkpOy0NCj4gPiBPT09PYmotDQo+ID4gPiA+U2V0T3B0 aW9uIChfU1RPU0lEKFMtPmdldFRleHQoKSwgUy0+Z2V0TGluZSgpKSk7ICsNCj4gPiA+IE9PT09i ai0+U2V0T3B0aW9uIChfU1RPU0lEKFMtPmdldFRleHQoKSwgUy0+Z2V0TGluZSgpKSk7DQo+ID4g PiBpZiAoQXJyYXlUeXBlKQ0KPiA+IHsNCj4gPiBPT09PYmotPlNldFR5cGUNCj4gPiA+DQo+ID4g KEVGSV9JRlJfVFlQRV9CVUZGRVIpOw0KPiA+ICAgICAgICAgICAgICAgICAgfSBlbHNlIHtAQCAt MzcwNiw3DQo+ID4gPiArMzcyMyw3IEBAIHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gPiA+ DQo+ID4gT09PT2JqLT5TZXRUeXBlDQo+ID4gPg0KPiA+IChfR0VUX0NVUlJRRVNUX0RBVEFUWVBF KCkpOw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0tDQo+ID4gT09PT2JqLT5TZXRWYWx1ZQ0KPiA+ID4g KCpWYWwpOyArDQo+ID4gT09PT2JqLT5TZXRWYWx1ZQ0KPiA+ID4NCj4gPg0KPiAoKlZhbCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+DQo+ ID4NCj4gPiBGOkZMQUdTICI9Ig0KPiA+ID4gdmZyT25lT2ZPcHRpb25GbGFnc1sqT09PT2JqLCBG LT5nZXRMaW5lKCldIDw8QEAgLTM3OTAsNyArMzgwNywxMg0KPiBAQA0KPiA+ID4gb25lb2ZvcHRp b25GbGFnc0ZpZWxkIFtVSU5UOCAmIEhGbGFncywgVUlOVDggJiBMRmxhZ3NdIDoNCj4gPiA+ICAg IHwgUmVzdFN0eWxlRmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwN Cj4gPiAkSEZsYWdzIHw9IDB4MjA7ID4+ICAgfA0KPiA+ID4gUmVjb25uZWN0UmVxdWlyZWRGbGFn ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgJEhGbGFncw0KPiB8PQ0KPiA+IDB4NDA7 ID4+ICAgfA0KPiA+ID4gTWFudWZhY3R1cmluZ0ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPDwgJExGbGFncw0KPiB8PQ0KPiA+IDB4MjA7ID4+LSAgfCBEZWZhdWx0RmxhZw0K PiA+ID4gPDwgJExGbGFncyB8PSAweDEwOyA+PisgIHwgRDpEZWZhdWx0RmxhZw0KPiA+IDw8Kw0K PiA+ID4gJExGbGFncyB8PSAweDEwOysNCj4gPiBpZiAobUlzQ2F0Y2hEZWZhdWx0RW5hYmxlKQ0K PiA+ID4geysNCj4gPiA+IERlZmF1bHRWYWx1ZUVycm9yKFZGUl9SRVRVUk5fVU5TVVBQT1JURUQs IEQtDQo+ID4gPiA+Z2V0TGluZSgpKTsrDQo+ID4gICAgICAgICAgIH0rDQo+ID4gPiAgPj4gICB8 IEE6TlZBY2Nlc3NGbGFnDQo+IDw8DQo+ID4gPiBnQ1ZmckVycm9ySGFuZGxlLkhhbmRsZVdhcm5p bmcNCj4gPiA+DQo+ID4gKA0KPiA+IFZGUl9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUksNCj4g PiA+IF9PUENPREUsQEAgLTM5NjMsNyArMzk4NSw3IEBAIHZmclN0YXRlbWVudEV4cHJlc3Npb24g W1VJTlQzMiANCj4gPiA+IFJvb3RMZXZlbCwgVUlOVDMyIEV4cE9wQ291bnQgPSAwXSA6DQo+ID4g Pg0KPiA+ICAgIH0NCj4gPiAgICB9DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9LQ0KPiA+ICsNCj4gPiA+IGlmICgkUm9vdExldmVsID09IDApDQo+ ID4gew0KPiA+IF9DTEVBUl9TQVZFRF9PUEhEUg0KPiA+ID4gKCk7DQo+ID4gbUNJZnJPcEhkcklu ZGV4IC0tO0BAIC00NDA1LDEwDQo+ID4gPiArNDQyNywxMCBAQCBpZGVxdmFsbGlzdEV4cFtVSU5U MzIgJiBSb290TGV2ZWwsIFVJTlQzMiAmDQo+IEV4cE9wQ291bnRdIDoNCj4gPiA+DQo+ID4gZm9y IChJbmRleCA9IDA7IEluZGV4IDwgTGlzdExlbjsgSW5kZXgrKykNCj4gPiA+DQo+ID4gew0KPiA+ ICAgRUlMT2JqLlNldFZhbHVlTGlzdCAoSW5kZXgsDQo+ID4gPg0KPiA+IFZhbHVlTGlzdFtJbmRl eF0pOw0KPiA+ICAgICAgICAgICAgICB9LQ0KPiA+ID4gKw0KPiA+ID4gKyBFSUxPYmouVXBkYXRl SWZyQnVmZmVyKCk7LQ0KPiA+ID4gX1NBVkVfT1BIRFJfQ09ORCAoRUlMT2JqLCAoJEV4cE9wQ291 bnQgPT0gMCksIEwtPmdldExpbmUoKSk7DQo+ID4gPiAtDQo+ID4gKw0KPiA+ID4gX1NBVkVfT1BI RFJfQ09ORCAoRUlMT2JqLCAoJEV4cE9wQ291bnQgPT0gMCksIEwtPmdldExpbmUoKSk7KyBpZiAN Cj4gPiA+IChRSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQpDQo+ID4gPg0KPiA+IHsNCj4g PiAgIEVJTE9iai5TZXRRdWVzdGlvbklkIChRSWQsIFZhcklkU3RyLA0KPiA+ID4NCj4gPiBMaW5l Tm8pOw0KPiA+ICAgICAgIH1AQCAtNDQ1OCw5ICs0NDgwLDkgQEANCj4gPiA+IHN0cmluZ3JlZjFF eHBbVUlOVDMyICYgUm9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XSA6DQo+ID4gPiAgICA+ PiAgIEw6U3RyaW5nUmVmICAgIlwoIi0gICAgICAoICsNCj4gPiAoICAgICAgICAgIlNUUklOR19U T0tFTiItICAgICAgICAiXCgiICsgICAgICAgICJcKCINCj4gPiA+IFM6TnVtYmVyIDw8IFJlZlN0 cmluZ0lkID0gX1NUT1NJRChTLT5nZXRUZXh0KCksIFMtPmdldExpbmUoKSk7ID4+DQo+ID4gIlwp Ig0KPiA+ID4gfCBJOk51bWJlciA8PCBSZWZTdHJpbmdJZCA9IF9TVE9TSUQoSS0+Z2V0VGV4dCgp LCBJLT5nZXRMaW5lKCkpOw0KPiA+ID4gfCA+PkBADQo+ID4gPiB8IC0NCj4gPiA+IDQ0OTksMTAg KzQ1MjEsMTAgQEAgZ2V0RXhwW1VJTlQzMiAmIFJvb3RMZXZlbCwgVUlOVDMyICYNCj4gPiBFeHBP cENvdW50XSA6DQo+ID4gPiAgICAgICBJbmZvLm1WYXJTdG9yZUlkID0gMDsgICA+PiAgIEw6R2V0 LSAgIlwoIiArICAiXCgiDQo+ID4gdmZyU3RvcmFnZVZhcklkW0luZm8sDQo+ID4gPiBWYXJJZFN0 ciwgRkFMU0VdICAgICAgIHsiXHwiIEZMQUdTICI9IiBudW1lcmljVmFyU3RvcmVUeXBlDQo+IFtW YXJUeXBlXSB9LQ0KPiA+ICJcKSINCj4gPiA+IDw8ICsgICJcKSIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+DQo+ID4NCj4geyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpDQo+ ID4gZiAoSW5mby5tVmFyU3RvcmVJZCA9PSAwKQ0KPiA+ID4NCj4gPiB7DQo+ID4gICAvLyBzdXBw b3J0IERhdGUvVGltZSBxdWVzdGlvbkBAIC0NCj4gPiA+IDQ1NDksOSArNDU3MSw5IEBAIGdldEV4 cFtVSU5UMzIgJiBSb290TGV2ZWwsIFVJTlQzMiAmDQo+IEV4cE9wQ291bnRdIDoNCj4gPiA+DQo+ ID4gPiBfUENBVENIKFZGUl9SRVRVUk5fVU5TVVBQT1JURUQsIEwtDQo+ID4gPiA+Z2V0TGluZSgp LCAiR2V0L1NldCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBkYXRhDQo+ID4gPg0KPiA+IGFycmF5Iik7 DQo+ID4gICAgICAgIH0NCj4gPiAgICAgICAgfQ0KPiA+ID4gLQ0KPiA+IENJZnJHZXQgR09iaihM LT5nZXRMaW5lKCkpOyAtDQo+ID4gPiBfU0FWRV9PUEhEUl9DT05EIChHT2JqLCAoJEV4cE9wQ291 bnQgPT0gMCksIEwtPmdldExpbmUoKSk7IC0gDQo+ID4gPiBHT2JqLlNldFZhckluZm8gKCZJbmZv KTsgKw0KPiA+IENJZnJHZXQgR09iaihMLQ0KPiA+ID4gPmdldExpbmUoKSk7Kw0KPiA+IF9TQVZF X09QSERSX0NPTkQgKEdPYmosDQo+ID4gPiAoJEV4cE9wQ291bnQgPT0gMCksIEwtPmdldExpbmUo KSk7KyBHT2JqLlNldFZhckluZm8gKCZJbmZvKTsNCj4gPiBkZWxldGVbXSBWYXJJZFN0cjsNCj4g PiA+DQo+ID4gJEV4cE9wQ291bnQrKzsNCj4gPiAgICAgICAgICAgIH1AQCAtNDYwOCw3ICs0NjMw LDcgQEANCj4gPiA+IHF1ZXN0aW9uMjNyZWZFeHBbVUlOVDMyICYgUm9vdExldmVsLCBVSU5UMzIg JiBFeHBPcENvdW50XSA6DQo+ID4gPiAgICAgICAgeyAgICAgICAgIFV1aWQgIj0iIGd1aWREZWZp bml0aW9uW0d1aWRdICIsIg0KPiA+IDw8IFR5cGUgPSAweDM7ID4+ICAgICAgIH0tDQo+ID4gPiB2 ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gKw0K PiA+ID4gdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YlskUm9vdExldmVsICsgMSwgJEV4cE9wQ291 bnRdICAgIlwpIg0KPiA+ID4gPDwNCj4gPiBzd2l0Y2ggKFR5cGUpIHtAQCAtNDY3NSw5ICs0Njk3 LDkgQEANCj4gPiA+IHNldEV4cFtVSU5UMzIgJiBSb290TGV2ZWwsIFVJTlQzMiAmIEV4cE9wQ291 bnRdIDoNCj4gPiA+ICAgICJcKCIgICAgICB2ZnJTdG9yYWdlVmFySWRbSW5mbywgVmFySWRTdHIs IEZBTFNFXSAgICAgIHsiXHwiIEZMQUcNCj4gIj0iDQo+ID4gPiBudW1lcmljVmFyU3RvcmVUeXBl IFtWYXJUeXBlXSB9LSAgICAgIiwiDQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRS b290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gKyAgICAgIiwiDQo+ID4gPiB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gICAiXCkiLQ0KPiA+ID4g PDwgKw0KPiA8PA0KPiA+ID4NCj4gPg0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkNCj4gPiBmIChJbmZvLm1WYXJTdG9yZUlk ID09IDApDQo+ID4gPg0KPiA+IHsNCj4gPiAgIC8vIHN1cHBvcnQgRGF0ZS9UaW1lIHF1ZXN0aW9u QEAgLQ0KPiA+ID4gNDcyNCw4ICs0NzQ2LDggQEAgc2V0RXhwW1VJTlQzMiAmIFJvb3RMZXZlbCwg VUlOVDMyICYNCj4gRXhwT3BDb3VudF0gOg0KPiA+ID4NCj4gPiA+IF9QQ0FUQ0goVkZSX1JFVFVS Tl9VTlNVUFBPUlRFRCwgTC0NCj4gPiA+ID5nZXRMaW5lKCksICJHZXQvU2V0IG9wY29kZSBkb24n dCBzdXBwb3J0IGRhdGENCj4gPiA+DQo+ID4gYXJyYXkiKTsNCj4gPiAgICAgICAgfQ0KPiA+ICAg ICAgICB9DQo+ID4gPiAtDQo+ID4gQ0lmclNldCBUU09iaihMLT5nZXRMaW5lKCkpOyAtDQo+ID4g PiBUU09iai5TZXRWYXJJbmZvICgmSW5mbyk7ICsNCj4gPiBDSWZyU2V0IFRTT2JqKEwtDQo+ID4g PiA+Z2V0TGluZSgpKTsrDQo+ID4gVFNPYmouU2V0VmFySW5mbyAoJkluZm8pOw0KPiA+ID4gZGVs ZXRlW10gVmFySWRTdHI7DQo+ID4gPg0KPiA+ICRFeHBPcENvdW50Kys7DQo+ID4gICAgICAgICAg ICB9QEAgLTQ4MDgsOSArNDgzMCw5IEBADQo+ID4gPiBzcGFuRXhwW1VJTlQzMiAmIFJvb3RMZXZl bCwgVUlOVDMyICYgRXhwT3BDb3VudF0gOg0KPiA+ID4gICAgOyAgdmZyRXhwcmVzc2lvbk1hcCBb VUlOVDMyICYgUm9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XTotDQo+ID4gPiBMOk1hcA0K PiA+ID4gLSAgIlwoIiAtICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAx LCAkRXhwT3BDb3VudF0gICsNCj4gPiBMOk1hcCsNCj4gPiA+ICJcKCIrICB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gICAiOiINCj4gPiA+IDw8 IHsgQ0lmck1hcCBNT2JqKEwtPmdldExpbmUoKSk7IH0gPj4NCj4gPiAoICAgICB2ZnJTdGF0ZW1l bnRFeHByZXNzaW9uWzBdQEAgLQ0KPiA+ID4gNDgzNyw2ICs0ODU5LDcgQEAgc3BhbkZsYWdzIFtV SU5UOCAmIEZsYWdzXSA6DQo+ID4gPiAgY2xhc3MgRWZpVmZyUGFyc2VyIHsgPDwgcHJpdmF0ZTor ICBCT09MRUFODQo+ID4gbUlzQ2F0Y2hEZWZhdWx0RW5hYmxlOw0KPiA+ID4gVUlOVDggICAgICAg ICAgICAgICBtUGFyc2VyU3RhdHVzOyAgIEJPT0xFQU4NCj4gPiBtQ29uc3RhbnRPbmx5SW5FeHBy ZXNzaW9uOw0KPiA+ID4gQEAgLTQ4ODAsNiArNDkwMyw3IEBAIHB1YmxpYzoNCj4gPiA+ICAgIFZP SUQgICAgICAgICAgICAgICAgX1BDQVRDSCAoSU4gRUZJX1ZGUl9SRVRVUk5fQ09ERSwgSU4NCj4g PiBBTlRMUlRva2VuUHRyKTsNCj4gPiA+IFZPSUQgICAgICAgICAgICAgICAgX1BDQVRDSCAoSU4g RUZJX1ZGUl9SRVRVUk5fQ09ERSwgSU4NCj4gVUlOVDMyKTsNCj4gPiBWT0lEDQo+ID4gPiBfUENB VENIIChJTiBFRklfVkZSX1JFVFVSTl9DT0RFLCBJTiBVSU5UMzIsIElOIENPTlNUIENIQVI4ICop OysNCj4gPiBWT0lEDQo+ID4gPiBEZWZhdWx0VmFsdWVFcnJvciAoSU4gRUZJX1ZGUl9SRVRVUk5f Q09ERSwgSU4gVUlOVDMyKTsgICAgVk9JRA0KPiA+ID4gc3luICAgICAoQU5UTFJBYnN0cmFjdFRv a2VuICAqLCBBTlRMUkNoYXIgKiwgU2V0V29yZFR5cGUgKiwNCj4gPiA+IEFOVExSVG9rZW5UeXBl LCBJTlQzMik7IEBAIC00OTA5LDYgKzQ5MzMsNyBAQCBwdWJsaWM6DQo+ID4gPiAgICBWT0lEICAg ICAgICAgICAgICAgIElkRXFJZERvU3BlY2lhbCAgICAgICAoSU4gVUlOVDMyICYsIElODQo+ID4g VUlOVDMyLCBJTg0KPiA+ID4gRUZJX1FVRVNUSU9OX0lELCBJTiBDSEFSOCAqLCBJTiBVSU5UMzIs IElOIEVGSV9RVUVTVElPTl9JRCwgSU4NCj4gPiBDSEFSOCAqLA0KPiA+ID4gSU4gVUlOVDMyLCBJ TiBFRklfQ09NUEFSRV9UWVBFKTsgICBWT0lEDQo+ID4gSWRFcUxpc3REb1NwZWNpYWwgICAgIChJ Tg0KPiA+ID4gVUlOVDMyICYsIElOIFVJTlQzMiwgSU4gRUZJX1FVRVNUSU9OX0lELCBJTiBDSEFS OCAqLCBJTiBVSU5UMzIsIElODQo+ID4gPiBVSU5UMTYsIElOIFVJTlQxNiAqKTsgICBWT0lEICAg ICAgICAgICAgICAgIFNldE92ZXJyaWRlQ2xhc3NHdWlkDQo+ID4gKElOIEVGSV9HVUlEICopOysN Cj4gPiA+IFZPSUQgICAgICAgICAgICAgICAgU2V0SXNDYXRjaERlZmF1bHRFbmFibGUgKEJPT0xF QU4NCj4gPiBJc0NhdGNoRGVmYXVsdEVuYWJsZSk7ID4+IH0NCj4gPiA+IEBAIC01MDg2LDYgKzUx MTEsMTcgQEAgRWZpVmZyUGFyc2VyOjpfUENBVENIICgNCj4gPiA+ICAgIG1QYXJzZXJTdGF0dXMg PSBtUGFyc2VyU3RhdHVzICsgZ0NWZnJFcnJvckhhbmRsZS5IYW5kbGVFcnJvcg0KPiA+ID4gKFJl dHVybkNvZGUsIExpbmVOdW0sIChDSEFSOCAqKSBFcnJvck1zZyk7IH0NCj4gPiA+ICtWT0lEK0Vm aVZmclBhcnNlcjo6RGVmYXVsdFZhbHVlRXJyb3IgKCsgIElOIEVGSV9WRlJfUkVUVVJOX0NPREUN Cj4gPiA+IFJldHVybkNvZGUsKyAgSU4gVUlOVDMyICAgICAgICAgICAgICBMaW5lTnVtKyAgKSt7 KyAgQ0hBUjgNCj4gPiBFcnJvck1zZ1sxMDBdOysNCj4gPiA+IHNwcmludGYoRXJyb3JNc2csICJw bGVhc2UgcmVtb3ZlIHRoZSBkZWZhdWx0IHZhbHVlIC8gZGVmYXVsdHN0b3JlIGluDQo+ID4gPiBs aW5lICVkIiwgTGluZU51bSk7KyAgbVBhcnNlclN0YXR1cyA9IG1QYXJzZXJTdGF0dXMgKw0KPiA+ ID4gZ0NWZnJFcnJvckhhbmRsZS5IYW5kbGVFcnJvciAoUmV0dXJuQ29kZSwgTGluZU51bSwgRXJy b3JNc2cpOyt9Kw0KPiA+ID4gVk9JRA0KPiA+IEVmaVZmclBhcnNlcjo6c3luDQo+ID4gPiAoICAg QU5UTFJBYnN0cmFjdFRva2VuICAqVG9rLEBAIC01NjgyLDEyICs1NzE4LDE4IEBADQo+ID4gPiBF ZmlWZnJQYXJzZXI6OklkRXFMaXN0RG9TcGVjaWFsICgNCj4gPiA+ICAgIH0gfSAtVk9JRCArVk9J RCBFZmlWZnJQYXJzZXI6OlNldE92ZXJyaWRlQ2xhc3NHdWlkIChJTiBFRklfR1VJRA0KPiA+ID4g Kk92ZXJyaWRlQ2xhc3NHdWlkKSB7ICAgbU92ZXJyaWRlQ2xhc3NHdWlkID0gT3ZlcnJpZGVDbGFz c0d1aWQ7IH0NCj4gPiA+ICtWT0lEK0VmaVZmclBhcnNlcjo6U2V0SXNDYXRjaERlZmF1bHRFbmFi bGUgKEJPT0xFQU4NCj4gPiA+IElzQ2F0Y2hEZWZhdWx0RW5hYmxlKSt7KyAgbUlzQ2F0Y2hEZWZh dWx0RW5hYmxlID0NCj4gPiBJc0NhdGNoRGVmYXVsdEVuYWJsZTsrfSsNCj4gPiA+IFZPSUQgRWZp VmZyUGFyc2VyOjpDaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZSAoICAgSU4gRUZJX0RFRkFVTFRf SUQNCj4gPiA+IERlZmF1bHRJZCwtLQ0KPiA+ID4gMi4yNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg0KDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0t Ckdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBn cm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTM5MjYpOiBodHRwczovL2VkazIuZ3JvdXBzLmlv L2cvZGV2ZWwvbWVzc2FnZS8xMTM5MjYKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5p by9tdC8xMDM3ODA3MDIvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91 cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBb cmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==