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 1A018D81112 for ; Thu, 25 Jan 2024 12:10:08 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=fF2oC9VjJcNsd44QloyAtFtI+4QGf2BpIGngBkX1nSE=; 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=1706184607; v=1; b=WkRA9pVuZB09usrsdh50dUwhp4njTAA3rWGE4fLCv+3ni+eaG8uOW/B23Pod8Fd9vlK2Gm0p exld3Yy25gf65ZQfCOd3AKhM0VCrFRx1MWvn96a5Wpj933webAhrlmSox5+96Nty90oEpjVvkyM E89Ugk6dqbgDZRiXmQQKr6/k= X-Received: by 127.0.0.2 with SMTP id Td9KYY7687511xHXxyCZK06T; Thu, 25 Jan 2024 04:10:07 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.13494.1706174842723012247 for ; Thu, 25 Jan 2024 01:27:23 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="401762831" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="401762831" X-Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 01:27:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="820735776" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="820735776" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Jan 2024 01:27:20 -0800 X-Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 01:27:20 -0800 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 25 Jan 2024 01:27:20 -0800 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 25 Jan 2024 01:27:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TcU1dz3/zYN/I0XNVyNvfG8g1LZwBbck+7OaJTam3N/s7ptt+RSIvMdnK5YnJqrx2izygJOhgJlijUfTZuMhLLgBq8PYbt/ifGL+VJl82+PYZN793Y9KrbxjmNrwnXKQP3RYX1YjgioB2dPM6jXFQQHj5OdG4r9NBiCi/db32+XqUJNv9tSf1hZaOCCApfT91CawteAaBhkfinU5h3flDC2/saCNHaSgMV/ZSVeCnhU9Oq+vy/hOPoi+JUR/3j2f68XQBym6ZU7wMLsOUn8jqBYOP8IF/pFpk7lUya53IhUP6BzGzZkzwFQ8QCBYD+yziuuMFCMVIW4QkDhYpjaljA== 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=lqL09DXflTChB9YUyrZ3oYqQxMqDaefvZuN2PmoUZxI=; b=QXSsUT1xYUOST5WVbeCvorJhgnov5VbE+xOct1dOHrlBcUsyP8udj5Nj6GmncrQTkT4EuWdU7j4IC71NChMCYXOboIjHAjhm4i3vFkpHpDcvFw5E+uAHTrRChLoHvgBkwLBfRr9NXRTEDSJC3nox5za0hlIi0hy2mL4bk3MJgGBg0nDJR9gQKluRXtIVltoUE2Yv7YTnpDIp3JR/BMv1GFB6+VZJj7fO3qqbNcaosj1AAuT0XyPzuRe7bLGE4eTc61QwNE99FRBu8dapP4CFxgqDPgkB5NhbgoKQDFJW8Way82ha+2fNF0dmeKzcISTN/06kGqu3qoShUID/eIkScA== 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 LV8PR11MB8582.namprd11.prod.outlook.com (2603:10b6:408:1f7::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.26; Thu, 25 Jan 2024 09:27:16 +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.7228.022; Thu, 25 Jan 2024 09:27:16 +0000 From: "Zhang, Zifeng" To: gaoliming , "devel@edk2.groups.io" , "Yang, Yuting2" CC: "Chen, Christine" , "Chen, Arthur G" 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/wMIABilkggARvM4CAAGKvcIAcK4JwgAbs3ICADcTn0A== Date: Thu, 25 Jan 2024 09:27:16 +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_|LV8PR11MB8582:EE_ x-ms-office365-filtering-correlation-id: db3611c3-e9f7-46b0-9bdd-08dc1d87d22f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: ph/oBzN/sro6cjRdxlDiKho8uNdj5MfplSprmuuCS9YhC4LdqT0LWU9smgM9EFEvLrWU2nYSXep3X+fEkYEuxVj/dkKmPEcD6Ia69u17VgEVC7SYHGbBMOxRceFZkLhwbETwlKCWZK4B+KnK88AiyWRdRR3oQYqqiygrT8cJ9mJQ/bVKLIJRsw5jxs/KsF5kKWx9M5gw0TQBXO6LkT1f+ZFskTMFLVWo6QuecUSpiYCQHswwOFzckPKbznGf2zoaqcaAniPQjww9CwID/S8I+kCJ/lWHWqw0tIZ06kEwHNZV+zdaFo8xCVKIS1EWkHkhEWxJFGKXA9q5hSKf6m1KiLg9PDgRRVrHbeuxGWa61W4z/9Pwo+ab8IYPQ+RhRnlSI9svL8gxj+wo9IRFiSpuqIBzhprMsP51giFMI7+KJAkahfhJAB2LHGg2RwyJXuqPZzgD1OfOlp5G//rPvmDER6LXs8ZAgC9781KQjb1iW3m+jtch8H+UMBORGWejSUVE/L0dYbqkF91vX0oszyLNfwKnyCA658WDEeUysoSr4r7c13JMlouyjoY9Jiuhwa3cqlw7dNPz19ijTfjq6OqqrIZSZgId7lNYIDXjMcU5KD5PfLDH2y+i9tDQunbrc+hQFrgaKAnadA6hLUHAJLW+R+kSoWblbnb/qdvORAryiFpzL4nrEZAwJKwjMtnlKgDf x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YUlOWFMvbjd4V0VoL1k3Mk05OHNTYlBXdWJpVWxuNzUrQ1E3eitqS0NxaCsz?= =?utf-8?B?SGM1b1JHK2prVE83R2FWY2Z2WURiZXJuTlVXczdDRVZlUk52QUFIL1Rldmlv?= =?utf-8?B?RlJRVXJZdDhQa2xBVVBXeFU1TlhadjZJV1lRLzdTUW5BN0dsQVh4ZHBUcHFi?= =?utf-8?B?TW1WTEFCOHRsb2ZHRmY5YnhTUk84TXkrYUdqOWlaTno1ZXBxUis0NkU4WnJ4?= =?utf-8?B?VENOSG5vcE5OcWtDdUZ4bDQ0czRTQ3Rma1R5b1owTUtLVHo0ekdXWi9Qb01Y?= =?utf-8?B?TW9aK0k2TzRrNGxRb1YxWnBNTy9FV3E3WG1lYjVYVGlnWldrTFZlQVgwU2dx?= =?utf-8?B?Wm5JR0R6L04xUDhLVHRSZUpTV0hCelBvY0xmWTBRMW1PVFozNSt1c1FVYnRG?= =?utf-8?B?Qzg1Wk9lRkVXN05LWkxnWHRDTEhvRm1Gc3FCOGVyV2RNYkU1RE5sZWZaQSts?= =?utf-8?B?MzJYR2dlZTcvR3g1NngwZ3k2bUk0T2d3Vm1DbU55KzJPdk9qU0FHclRnL0w1?= =?utf-8?B?eks2RzNaeXlwNXYwY3kyOUowSTVNSVMzbms5WlFTR0tGRzJBNU5nMEpUVmxV?= =?utf-8?B?Sm0xVXR2VzlUSURCUmxHTlRZbnBudVB3dW5BRWNHRVBsVDVkRE5HVlF0aDNW?= =?utf-8?B?MTU5NERJZE5jd3AyMTBIWWs4TS94Q3Zsc1piL3RiT21XTDVBTk1DZVpaeXQ5?= =?utf-8?B?ajMwQjd0aXhkcE1RKzRpOEgrN1ZBSm1xTHBWcUk4NGxLZG82QkxDWVNHMEFE?= =?utf-8?B?MUxIWm9VeDduZ2VVcDA1SWpwZS9lV3gzRFFUcDdzb29pVUo2ek5USnFGNDNo?= =?utf-8?B?TG5BemkycW9nUFB3cWc3K0FVNU1UNGRjb05sZDZMUHNvZ2E2L3lXSmp2YS9U?= =?utf-8?B?dCs5L0JlL2p5eVR5VXdGOEYrUUdManFsSC9MM0RzRCtvc09TNmo1MWtDVzdp?= =?utf-8?B?THJrendjMXZEa3ZuVXA2UXpOaFFGRkExVmRqZ0pWbkRmQjBaMjl0bmRqTXhu?= =?utf-8?B?TFpFK3Q3b2Uyam95UVNYYktBamlEamNrbVdmck9KS3d3dVVSMm5rMFozNC9t?= =?utf-8?B?RjBnQ1NoVHlBVTNJV1ZhTG9NQkF6dDIxa1g3ZGxUSXBwMUo1UTlaVFhESUNQ?= =?utf-8?B?S2JZU0V5cGVQUWJuMjNBS2Fjd0Q2aTBnQ1NrT3NWV3FQbEZoT0MrS2p5UHRT?= =?utf-8?B?OGNIMlR2RjFrckp2MGRMckNXMm9FQmMwMWhjaXZ2YUdGNE9nSTFDNDVYamtP?= =?utf-8?B?NDR1dDYvTkJ0MnNQTTJQb000NlAybVZwUVJGSlkwWFBOMmpPbTFzMFBFNDc2?= =?utf-8?B?aDNzWk9GK2dSZEJUeE4wZmIwcDAyQ1NWQ2IzaDRWWUZidHYxWlA1SXUvMUxE?= =?utf-8?B?eXovT1d2bTJBSE9IMTR2S2lUTkVoQnV5eGJEOUQzM2VlZVJJRVJnV3NmazNu?= =?utf-8?B?T3FZaHpDS2labE9ydXRqeXZyYmk3Z3gyV0ptMXAyVnVPeU1JMG9ZU2h6Mk1t?= =?utf-8?B?MXpsZ1RCOEczY0hIdXp0SG5RcitLTDZ4eERKREczcDRiZWxtQ2Ftb3NpOGov?= =?utf-8?B?OWpQSm9OSFJsQ2xxY3o2bVF2N0VzNUpiQ0lUdFpJUzNkTFE4a0U1dUVsaWpQ?= =?utf-8?B?V2dTc0thc0I3V2p0M3Vkc2dNNVlXbjBkTkRORmgzVFpGVzhsa1NvNlNuOVk4?= =?utf-8?B?L1Z0ZXozVVdjN0hzRXRHK3hiZ0c1TGZPVGF1aFAvdUl5Uktwa2M0aThudXc2?= =?utf-8?B?SmF2M0tzRURMV1V5K2taU2xFTmplYUgwYS9NUHpkeGN4SmhCK3V6a1I3ZXA1?= =?utf-8?B?WVY4ekdSb1B3b1U2WE1FcHk2TzVLRHJLczJGR2Zxa1VHMldGTGZDODFyb0pu?= =?utf-8?B?b1ppWEdEWEJETzdMblE3TDJ2b2twWkwvWXVXRGlSNG9vS0pRNWFvVlZBOVl6?= =?utf-8?B?d0gveitCWE92MWVJREFOMDRBbUMrQTE2NzZhNmhPY2l1QkVJRHpqaThaWUlG?= =?utf-8?B?bDJ5VitaM1N6K1c3Q094eTEveEVEK2dvSWdWVzJqVnhwaGpSeVBPYjY4Z2JX?= =?utf-8?B?NUp3Y2Q3L1drcWN0MWhuMHJmazhXYWlCVXEyZHhaYWdkV3ZoMkt0SEoybWh1?= =?utf-8?Q?3+5tA7MPafktJpa8lTtVtehi9?= 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: db3611c3-e9f7-46b0-9bdd-08dc1d87d22f X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 09:27:16.3824 (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: SC4L5rrtnKlcQSCUTdKjk5k7XqNpnYtbMcG48WKfxzyaVWzzEsILljnQWiXJOpnNRkPB73g2WR3QuiEqGDASEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR11MB8582 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: UPTSMwDF34tXxEHnV9mcmtCax7686176AA= 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=WkRA9pVu; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SGkgTGltaW5nLA0KDQpXZSBhZG9wdCB0aGUgc29sdXRpb24gdG8gc2VuZCBvcHRpb24gZnJvbSBt b2R1bGUgbGV2ZWwuDQpXZSB3aWxsIGFkZCAtLWNhdGNoX2RlZmF1bHQgb3B0aW9uIGludG8gSU5G IGZvciBtb2R1bGUgd2hpY2ggbmVlZCB0byBkbyBWRlIgZGVmYXVsdCBmbGFnIGNoZWNrLg0KVGh1 cywgVkZSIENvbXBpbGVyIG9ubHkgbmVlZCB0byBjYXRjaCBvbmUgb3B0aW9uIHRoZW4gZG8gbW9k dWxlIGNoZWNrLg0KQFl1dGluZywgY291bGQgeW91IGhlbHAgdG8gdXBkYXRlIHRoZSBwYXRjaCBm b3IgcmV2aWV3Pw0KDQpCZXN0IFJlZ2FyZHMsDQpaaWZlbmcNCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPiANClNl bnQ6IFR1ZXNkYXksIEphbnVhcnkgMTYsIDIwMjQgMTE6MDQgUE0NClRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgWmhhbmcsIFppZmVuZyA8emlmZW5nLnpoYW5nQGludGVsLmNvbT47IFlhbmcsIFl1 dGluZzIgPHl1dGluZzIueWFuZ0BpbnRlbC5jb20+DQpDYzogQ2hlbiwgQ2hyaXN0aW5lIDx5dXdl aS5jaGVuQGludGVsLmNvbT4NClN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQYXRjaCBW Ml0gQmFzZVRvb2xzOiBWZnJDb21waWxlciBBZGRzIERlZmF1bHRWYWx1ZUVycm9yIEZlYXR1cmUN Cg0KDQpUaGlzIG9wdGlvbiBpcyBmb3IgdGhlIG1vZHVsZSBjaGVjay4gSSBzdWdnZXN0IHRvIHNl dCB0aGlzIG9wdGlvbiBpbiBJTkYgaW5zdGVhZCBvZiBEU0MuIA0KSWYgc28sIERTQyBpcyBub3Qg cmVxdWlyZWQgdG8gY29uZmlndXJlIHRoZSBhZGRpdGlvbmFsIG9wdGlvbnMuIEFuZCwgdGhpcyBt b2R1bGUgd2lsbCBoYXZlIHRoZSBzYW1lIGJ1aWxkIHJlc3VsdCB3aGVuIGl0IGlzIHNwZWNpZmll ZCBpbiB0aGUgZGlmZmVyZW50IHBsYXRmb3JtIERTQyBmaWxlcy4NCg0KSSB1bmRlcnN0YW5kIHlv dXIgcmVxdWlyZW1lbnQgdG8gZW5hYmxlIHRoaXMgb3B0aW9uIGZvciB0aGUgbW9kdWxlcyBpbiBz b21lIHNwZWNpZmljIHBhY2thZ2UuIA0KSSB0aGluayB5b3UgY2FuIGVhc2lseSBmaW5kIHRob3Nl IG1vZHVsZXMgdGhvc2UgaGF2ZSBWRlIvSEZSLCB0aGVuIHVwZGF0ZSB0aGVpciBJTkZzIHdpdGgg bmV3IGNoZWNrIG9wdGlvbi4gDQoNClRoYW5rcw0KTGltaW5nDQo+IC0tLS0t6YKu5Lu25Y6f5Lu2 LS0tLS0NCj4g5Y+R5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IOS7o+ihqCBaaGFuZywgWmlmZW5nDQo+IOWPkemAgeaXtumXtDogMjAyNOW5tDHmnIgx MuaXpSAxMzoyMA0KPiDmlLbku7bkuro6IFlhbmcsIFl1dGluZzIgPHl1dGluZzIueWFuZ0BpbnRl bC5jb20+OyBHYW8sIExpbWluZyANCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4g5oqE 6YCBOiBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4g5Li76aKYOiBSZTogW2VkazItZGV2ZWxdIFtQYXRjaCBWMl0gQmFzZVRvb2xz OiBWZnJDb21waWxlciBBZGRzIA0KPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJlDQo+IA0KPiBI aSBMaW1pbmcsDQo+IA0KPiBDb3VsZCB5b3UgaGVscCB0byBzaGFyZSB0aGUgdXBkYXRlIGZvciB0 aGlzIHBhdGNoIHNvbHV0aW9uPw0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBaaWZlbmcNCj4gDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbmcsIFl1dGluZzIgPHl1dGlu ZzIueWFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMjUsIDIwMjMgMzox MCBQTQ0KPiBUbzogR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6 IFpoYW5nLCBaaWZlbmcgPHppZmVuZy56aGFuZ0BpbnRlbC5jb20+OyBDaGVuLCBDaHJpc3RpbmUg DQo+IDx5dXdlaS5jaGVuQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IFN1Ympl Y3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VUb29sczogVmZyQ29tcGlsZXIgQWRkcyBEZWZhdWx0VmFs dWVFcnJvciANCj4gRmVhdHVyZQ0KPiANCj4gSGkgTGltaW5nLA0KPiANCj4gVGhhbmsgeW91IGZv ciBhZGRpbmcgIHRoZSBhY2NvdW50IGZvciBtZS4NCj4gSSBoYXZlIGNyZWF0ZWQgYSBCdWd6aWxs YSANCj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00NjI5 DQo+IGZvciB0aGlzIGZlYXR1cmUgfg0KPiANCj4gQmVzdCBSZWdhcmRzLCwNCj4gWXV0aW5nDQo+ IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW9saW1pbmcgPGdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gU2VudDogTW9uZGF5LCBEZWNlbWJlciAyNSwgMjAyMyA5 OjE0IEFNDQo+IFRvOiBZYW5nLCBZdXRpbmcyIDx5dXRpbmcyLnlhbmdAaW50ZWwuY29tPg0KPiBT dWJqZWN0OiDlm57lpI06IFtQYXRjaCBWMl0gQmFzZVRvb2xzOiBWZnJDb21waWxlciBBZGRzIERl ZmF1bHRWYWx1ZUVycm9yIA0KPiBGZWF0dXJlDQo+IA0KPiBZb3VyIGFjY291bnQgeXV0aW5nMi55 YW5nQGludGVsLmNvbSBoYXMgYmVlbiBhZGRlZC4gUFc6IHRpYW5vQDEyMw0KPiANCj4gPiAtLS0t LemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBZYW5nLCBZdXRpbmcyIDx5dXRpbmcy LnlhbmdAaW50ZWwuY29tPg0KPiA+IOWPkemAgeaXtumXtDogMjAyM+W5tDEy5pyIMjLml6UgMTM6 NDENCj4gPiDmlLbku7bkuro6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ DQo+ID4g5oqE6YCBOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAYnNkaW8uY29tPjsgRmVuZywgQm9i IEMgDQo+ID4gPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgQ2hlbiwgQXJ0aHVyIEcgPGFydGh1ci5n LmNoZW5AaW50ZWwuY29tPjsgDQo+ID4gQ2hlbiwgQ2hyaXN0aW5lIDx5dXdlaS5jaGVuQGludGVs LmNvbT47IFpoYW5nLCBaaWZlbmcgDQo+ID4gPHppZmVuZy56aGFuZ0BpbnRlbC5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KPiA+IOS4u+mimDogUkU6IFtQYXRjaCBWMl0gQmFzZVRvb2xzOiBW ZnJDb21waWxlciBBZGRzIERlZmF1bHRWYWx1ZUVycm9yIA0KPiA+IEZlYXR1cmUNCj4gPg0KPiA+ IEhpIExpbWluZywNCj4gPg0KPiA+IFRoYW5rIHlvdSBmb3IgcmV2aWV3aW5nIH4NCj4gPiBDb3Vs ZCB5b3UgcGxlYXNlIGhlbHAgbWUgY3JlYXRlIGEgQnVnemlsbGEgYWNjb3VudD8gQ3VycmVudGx5 LCBJIGRvIA0KPiA+IG5vdA0KPiBoYXZlDQo+ID4gYWNjZXNzIHRvIHRoZSBCdWd6aWxsYS4NCj4g Pg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPiBZdXRpbmcNCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWmhhbmcsIFppZmVuZyA8emlmZW5nLnpoYW5nQGludGVs LmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjEsIDIwMjMgMjo0NCBQTQ0KPiA+ IFRvOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgWWFuZywgWXV0aW5n MiANCj4gPiA8eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gPiBDYzogUmViZWNjYSBDcmFuIDxy ZWJlY2NhQGJzZGlvLmNvbT47IEZlbmcsIEJvYiBDIA0KPiA+IDxib2IuYy5mZW5nQGludGVsLmNv bT47IENoZW4sIEFydGh1ciBHIDxhcnRodXIuZy5jaGVuQGludGVsLmNvbT47IA0KPiA+IGRldmVs QGVkazIuZ3JvdXBzLmlvOyBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50ZWwuY29tPg0K PiA+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VUb29sczogVmZyQ29tcGlsZXIgQWRkcyAN Cj4gPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJlDQo+ID4NCj4gPiBIaSBMaW1pbmcsDQo+ID4N Cj4gPiBUaGFua3MgZm9yIHJldmlld2luZy4NCj4gPiBGb3IgYmFja2dyb3VuZCBvZiB0aGlzIGNo YW5nZSwgd2Ugd2lsbCByZW1vdmUgZGVmYXVsdCBmbGFncyBpbiANCj4gPiBWRlIvSEZSIGluIG5l dyBwbGF0Zm9ybS4gU28gd2UgbmVlZCBoZWxwIGZyb20gVkZSIGNvbXBsaWVyIHRvIG1ha2UgYSAN Cj4gPiBkZWZhdWx0IGZsYWcgY2hlY2sgdG8gYXZvaWQgbWFudWFsbHkgYWRkaW5nLg0KPiA+IEBZ YW5nLCBZdXRpbmcyLCBjb3VsZCB5b3UgaGVscCB0byBjcmVhdGUgYSBCWiBmb3IgdGhpcyBmZWF0 dXJlIGFuZCANCj4gPiBzaGFyZQ0KPiBpbg0KPiA+IG1haWwgdGhyZWFkPw0KPiA+IFRoZW4gbGV0 IG1lIG1ha2UgYSBjbGFyaWZpY2F0aW9uIGZvciB5b3VyIHF1ZXN0aW9ucy4NCj4gPg0KPiA+ICMx OiBUaGUgcHVycG9zZSBvZiAtLWNhdGNoX2RlZmF1bHQNCj4gPiBXZSBzZW5kIC0tY2F0Y2hfZGVm YXVsdCBmbGFnIGluIGJ1aWxkIG9wdGlvbiB0byBpbmRpY2F0ZSB3aGljaCANCj4gPiBwbGF0Zm9y bQ0KPiBzaG91bGQNCj4gPiBjaGVjayBkZWZhdWx0IGZsYWcgaW4gVkZSL0hGUi4NCj4gPiBBY3R1 YWxseSBtYXliZSBzb21lIHBsYXRmb3JtcyB1c2VkIHNhbWUgRURLMiBkb3duc3RyZWFtIGJyYW5j aCwgc28gDQo+ID4gd2Ugb25seSBzZW5kIC0tY2F0Y2hfZGVmYXVsdCBmbGFnIGZvciB0aGUgcGxh dGZvcm1zIHdoaWNoIG5lZWQgdGhpcyBjaGVjay4NCj4gPg0KPiA+ICMyOiBUaGUgcHVycG9zZSBv ZiAtLWV4Y2VwdF9saXN0DQo+ID4gVkZSIGNvbXBpbGVyIHdpbGwgcmVjZWl2ZSBWRlIvSEZSIGNv bmZpZ3VyYXRpb25zIGZyb20gYWxsIGZvbGRlcnMNCj4gaW5jbHVkaW5nDQo+ID4gSW50ZWwgYW5k IEVESzIuIEJ1dCBpbiBvdXIgZXhwZWN0YXRpb24gVkZSIGNvbXBpbGVyIG9ubHkgZG8gdGhpcyAN Cj4gPiBjaGVjayBpbiBJbnRlbC4NCj4gPiBTbyBXZSB1c2UgLS1leGNlcHRfbGlzdCB0byBkZWxp dmVyIHBhY2thZ2UgbGlzdCBpbiBFREsyIHRvIGF2b2lkIA0KPiA+IHRoaXMNCj4gY2hlY2suDQo+ ID4NCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gWmlmZW5nDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFlhbmcsIFl1dGluZzIgPHl1dGluZzIueWFuZ0BpbnRl bC5jb20+DQo+ID4gU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMTIsIDIwMjMgNToxMiBQTQ0KPiA+ IFRvOiBaaGFuZywgWmlmZW5nIDx6aWZlbmcuemhhbmdAaW50ZWwuY29tPjsgQ2hlbiwgQXJ0aHVy IEcgDQo+ID4gPGFydGh1ci5nLmNoZW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT47IEdhbywgTGltaW5nIA0K PiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0Bp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQYXRjaCBWMl0gQmFzZVRvb2xzOiBWZnJDb21w aWxlciBBZGRzIA0KPiA+IERlZmF1bHRWYWx1ZUVycm9yIEZlYXR1cmUNCj4gPg0KPiA+ICtDYyBa aGFuZywgWmlmZW5nLCBDaGVuLCBBcnRodXIgRw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiBGcm9tOiBDaGVuLCBDaHJpc3RpbmUgPHl1d2VpLmNoZW5AaW50ZWwuY29t Pg0KPiA+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDEyLCAyMDIzIDU6MDQgUE0NCj4gPiBUbzog WWFuZywgWXV0aW5nMiA8eXV0aW5nMi55YW5nQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvDQo+ID4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBic2Rpby5jb20+OyBHYW8sIExpbWlu ZyANCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgRmVuZywgQm9iIEMgPGJvYi5jLmZl bmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggVjJdIEJhc2VUb29sczogVmZy Q29tcGlsZXIgQWRkcyANCj4gPiBEZWZhdWx0VmFsdWVFcnJvciBGZWF0dXJlDQo+ID4NCj4gPiAr Q2MgWWFuZywgWXV0aW5nMg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gRnJvbTogWWFuZywgWXV0aW5nMiA8eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gPiA+ IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDEyLCAyMDIzIDU6MDEgUE0NCj4gPiA+IFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBic2Rpby5j b20+OyBHYW8sIExpbWluZyANCj4gPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBGZW5n LCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyANCj4gPiA+IENoZW4sIENocmlzdGluZSA8 eXV3ZWkuY2hlbkBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUGF0Y2ggVjJdIEJhc2VUb29s czogVmZyQ29tcGlsZXIgQWRkcyBEZWZhdWx0VmFsdWVFcnJvciANCj4gPiA+IEZlYXR1cmUNCj4g PiA+DQo+ID4gPiBBZGQgLS1jYXRjaF9kZWZhdWx0IG9wdGlvbg0KPiA+ID4gUmFpc2UgYSBEZWZh dWx0VmFsdWVFcnJvciB3aGVuIGVuY291bnRlcmluZyBWRlIgZGVmYXVsdCANCj4gPiA+IGRlZmlu aXRpb25zIHRvIGhlbHAgcmVtb3ZlIGRlZmF1bHQgdmFyaWFibGVzLg0KPiA+ID4gQWRkIC0tZXhj ZXB0X2xpc3Qgb3B0aW9uDQo+ID4gPiBFeGNsdWRlIHBhY2thZ2VzIHRoYXQgZG9uJ3QgcmVxdWly ZSBlbmFibGluZyB0aGUgY2F0Y2hfZGVmYXVsdCBmdW5jdGlvbi4NCj4gPiA+DQo+ID4gPiBDYzog UmViZWNjYSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT4NCj4gPiA+IENjOiBMaW1pbmcgR2FvIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiBDYzogQm9iIEZlbmcgPGJvYi5jLmZlbmdA aW50ZWwuY29tPg0KPiA+ID4gQ2M6IENocmlzdGluZSBDaGVuIDx5dXdlaS5jaGVuQGludGVsLmNv bT4NCj4gPiA+IENjOiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5nQGludGVsLmNvbT4NCj4gPiA+ DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZdXRpbmcgWWFuZyA8eXV0aW5nMi55YW5nQGludGVsLmNv bT4NCj4gPiA+IC0tLQ0KPiA+ID4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckNv bXBpbGVyLmNwcCB8ICA0MCArKy0NCj4gPiA+ICBCYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGls ZS9WZnJDb21waWxlci5oICAgfCAgIDMgKw0KPiA+ID4gIEJhc2VUb29scy9Tb3VyY2UvQy9WZnJD b21waWxlL1ZmckVycm9yLmNwcCAgICB8ICAgMyArLQ0KPiA+ID4gIEJhc2VUb29scy9Tb3VyY2Uv Qy9WZnJDb21waWxlL1ZmckVycm9yLmggICAgICB8ICAgMyArLQ0KPiA+ID4gIEJhc2VUb29scy9T b3VyY2UvQy9WZnJDb21waWxlL1ZmckZvcm1Qa2cuaCAgICB8ICAgMSArDQo+ID4gPiAgQmFzZVRv b2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyU3ludGF4LmcgICAgIHwgMjM4DQo+ID4gKysrKysr KysrKy0tLS0tLS0tDQo+ID4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKSwg MTA0IGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291 cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5jcHANCj4gPiA+IGIvQmFzZVRvb2xzL1NvdXJj ZS9DL1ZmckNvbXBpbGUvVmZyQ29tcGlsZXIuY3BwDQo+ID4gPiBpbmRleCA1ZjRkMjYyZDg1Li5l OTdjZWJmZjY1IDEwMDY0NA0KPiA+ID4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBp bGUvVmZyQ29tcGlsZXIuY3BwDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29t cGlsZS9WZnJDb21waWxlci5jcHANCj4gPiA+IEBAIC03OCw2ICs3OCw5IEBAIENWZnJDb21waWxl cjo6T3B0aW9uSW5pdGlhbGl6YXRpb24gKA0KPiA+ID4gICAgbU9wdGlvbnMuV2FybmluZ0FzRXJy b3IgICAgICAgICAgICAgICAgPSBGQUxTRTsNCj4gPiBtT3B0aW9ucy5BdXRvRGVmYXVsdA0KPiA+ ID4gPSBGQUxTRTsgICBtT3B0aW9ucy5DaGVja0RlZmF1bHQgICAgICAgICAgICAgICAgICA9IEZB TFNFOysNCj4gPiA+IG1PcHRpb25zLklzQ2F0Y2hEZWZhdWx0RW5hYmxlICAgICAgICAgID0gRkFM U0U7Kw0KPiA+IG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QNCj4gPiA+ID0gTlVMTDsrICBtT3B0aW9u cy5FeGNlcHRpb25MaXN0U2l6ZSAgICAgICAgICAgICA9IDA7ICAgbWVtc2V0DQo+ID4gPiAoJm1P cHRpb25zLk92ZXJyaWRlQ2xhc3NHdWlkLCAwLCBzaXplb2YgKEVGSV9HVUlEKSk7ICAgIGlmIChB cmdjID09IDEpDQo+ID4ge0BAIC0NCj4gPiA+IDk1LDYgKzk4LDIzIEBAIENWZnJDb21waWxlcjo6 T3B0aW9uSW5pdGlhbGl6YXRpb24gKA0KPiA+ID4gICAgICAgIFZlcnNpb24gKCk7ICAgICAgIFNF VF9SVU5fU1RBVFVTIChTVEFUVVNfREVBRCk7DQo+ID4gcmV0dXJuOysgICAgfSBlbHNlIGlmDQo+ ID4gPiAoc3RyaWNtcChBcmd2W0luZGV4XSwgIi0tY2F0Y2hfZGVmYXVsdCIpID09IDApeysNCj4g PiA+IG1PcHRpb25zLklzQ2F0Y2hEZWZhdWx0RW5hYmxlID0gVFJVRTsrICAgIH0gZWxzZSBpZg0K PiAoc3RyaWNtcChBcmd2W0luZGV4XSwNCj4gPiAiLS0NCj4gPiA+IGV4Y2VwdF9saXN0IikgPT0g MCl7KyAgICAgIElOVDMyIFN0YXJ0ID0gKytJbmRleDsrICAgICAgaWYgKChTdGFydCA+PQ0KPiBB cmdjKQ0KPiA+IHx8DQo+ID4gPiAoQXJndltTdGFydF1bMF0gPT0gJy0nKSkgeysgICAgICAgIERl YnVnRXJyb3IgKE5VTEwsIDAsIDEwMDEsICJNaXNzaW5nDQo+ID4gb3B0aW9uIiwgIi0NCj4gPiA+ IGV4Y2VwdGlvbl9saXN0IG1pc3NpbmcgZXhjZXB0IGxpc3QiKTsrICAgICAgICBnb3RvIEZhaWw7 KyAgICAgIH0rDQo+ID4gd2hpbGUNCj4gPiA+ICgoQXJndltJbmRleF1bMF0gIT0gJy0nKSAmJiAo SW5kZXggPCBBcmdjIC0gMSkpIHsrICAgICAgICBJbmRleCsrOysNCj4gfSsNCj4gPiBJTlQzMg0K PiA+ID4gRW5kID0gSW5kZXgtLTsrICAgICAgbU9wdGlvbnMuRXhjZXB0aW9uTGlzdFNpemUgPSBF bmQgLSBTdGFydDsrDQo+IGZvcg0KPiA+IChJTlQzMiBpID0NCj4gPiA+IFN0YXJ0OyBpIDwgRW5k OyBpKyspIHsrICAgICAgICBtT3B0aW9ucy5FeGNlcHRpb25MaXN0ID0gKENIQVI4KiopDQo+ID4g PiByZWFsbG9jKG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QsIChpIC0gU3RhcnQgKyAxKSAqIHNpemVv ZihDSEFSOCopKTsrDQo+ID4gPiBtT3B0aW9ucy5FeGNlcHRpb25MaXN0W2ktU3RhcnRdID0gQXJn dltpXTsrICAgICAgfSAgICAgfSBlbHNlIGlmDQo+ID4gKHN0cmljbXAoQXJndltJbmRleF0sDQo+ ID4gPiAiLWwiKSA9PSAwKSB7ICAgICAgIG1PcHRpb25zLkNyZWF0ZVJlY29yZExpc3RGaWxlID0g VFJVRTsNCj4gPiA+IGdDSWZyUmVjb3JkSW5mb0RCLlR1cm5PbiAoKTtAQCAtMTc5LDcgKzE5OSwx MSBAQCANCj4gPiA+IENWZnJDb21waWxlcjo6T3B0aW9uSW5pdGlhbGl6YXRpb24gKA0KPiA+ID4g ICAgICAgIGdvdG8gRmFpbDsgICAgIH0gICAgIHN0cmNweSAobU9wdGlvbnMuVmZyRmlsZU5hbWUs DQo+ID4gQXJndltJbmRleF0pOy0rICAgIGZvciAoaW50IGkgPQ0KPiA+ID4gMDsgaSA8IG1PcHRp b25zLkV4Y2VwdGlvbkxpc3RTaXplOyBpKyspIHsrICAgICAgaWYNCj4gPiAoc3Ryc3RyKG1PcHRp b25zLlZmckZpbGVOYW1lLA0KPiA+ID4gbU9wdGlvbnMuRXhjZXB0aW9uTGlzdFtpXSkgIT0gTlVM TCkgeysNCj4gPiBtT3B0aW9ucy5Jc0NhdGNoRGVmYXVsdEVuYWJsZSA9DQo+ID4gPiBGQUxTRTsr ICAgICAgfSsgICAgfSAgICAgaWYgKG1PcHRpb25zLk91dHB1dERpcmVjdG9yeSA9PSBOVUxMKQ0K PiA+ID4geyAgICAgICBtT3B0aW9ucy5PdXRwdXREaXJlY3RvcnkgPSAoQ0hBUjggKikgbWFsbG9j ICgxKTsgICAgICAgaWYNCj4gPiA+IChtT3B0aW9ucy5PdXRwdXREaXJlY3RvcnkgPT0gTlVMTCkg e0BAIC0yMTcsNiArMjQxLDExIEBAIEZhaWw6DQo+ID4gPiAgICAgIGZyZWUgKG1PcHRpb25zLlZm ckZpbGVOYW1lKTsgICAgIG1PcHRpb25zLlZmckZpbGVOYW1lDQo+ID4gPQ0KPiA+ID4gTlVMTDsg ICB9KyAgaWYgKG1PcHRpb25zLkV4Y2VwdGlvbkxpc3QgIT0gTlVMTCkgeysNCj4gPiA+IGZyZWUo bU9wdGlvbnMuRXhjZXB0aW9uTGlzdCk7KyAgICBtT3B0aW9ucy5FeGNlcHRpb25MaXN0DQo+ID4g PSBOVUxMOysrICB9DQo+ID4gPiBpZiAobU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1lICE9IE5VTEwp IHsgICAgIGZyZWUNCj4gPiAobU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1lKTsNCj4gPiA+IG1PcHRp b25zLlZmckJhc2VGaWxlTmFtZSAgICAgICAgICAgICA9IE5VTEw7QEAgLTQ5Niw2ICs1MjUsMTEN Cj4gPiBAQA0KPiA+ID4gQ1ZmckNvbXBpbGVyOjp+Q1ZmckNvbXBpbGVyICgNCj4gPiA+ICAgICAg bU9wdGlvbnMuVmZyQmFzZUZpbGVOYW1lID0gTlVMTDsgICB9ICsgIGlmDQo+ID4gKG1PcHRpb25z LkV4Y2VwdGlvbkxpc3QgIT0NCj4gPiA+IE5VTEwpIHsrICAgIGZyZWUgKG1PcHRpb25zLkV4Y2Vw dGlvbkxpc3QpOysgICAgbU9wdGlvbnMuRXhjZXB0aW9uTGlzdA0KPiA9DQo+ID4gPiBOVUxMOysg IH0rICAgaWYgKG1PcHRpb25zLk91dHB1dERpcmVjdG9yeSAhPSBOVUxMKSB7ICAgICBmcmVlDQo+ ID4gPiAobU9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5KTsgICAgIG1PcHRpb25zLk91dHB1dERpcmVj dG9yeSA9DQo+IE5VTEw7QEANCj4gPiAtNjc5LDcNCj4gPiA+ICs3MTMsNyBAQCBDVmZyQ29tcGls ZXI6OkNvbXBpbGUgKA0KPiA+ID4gICAgICBEZWJ1Z0Vycm9yIChOVUxMLCAwLCAwMDAxLCAiRXJy b3Igb3BlbmluZyB0aGUgaW5wdXQgZmlsZSIsICIlcyIsDQo+ID4gPiBJbkZpbGVOYW1lKTsgICAg IGdvdG8gRmFpbDsgICB9LSsgIElucHV0SW5mby5Jc0NhdGNoRGVmYXVsdEVuYWJsZSA9DQo+ID4g PiBtT3B0aW9ucy5Jc0NhdGNoRGVmYXVsdEVuYWJsZTsgICBpZiAobU9wdGlvbnMuSGFzT3ZlcnJp ZGVDbGFzc0d1aWQpDQo+ID4gPiB7ICAgICBJbnB1dEluZm8uT3ZlcnJpZGVDbGFzc0d1aWQgPSAm bU9wdGlvbnMuT3ZlcnJpZGVDbGFzc0d1aWQ7ICAgfQ0KPiA+IGVsc2UNCj4gPiA+IHtAQCAtOTM3 LDUgKzk3MSwzIEBAIG1haW4gKA0KPiA+ID4gICAgIHJldHVybiBHZXRVdGlsaXR5U3RhdHVzICgp OyB9LS1kaWZmIC0tZ2l0IA0KPiA+ID4gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9W ZnJDb21waWxlci5oDQo+ID4gPiBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckNv bXBpbGVyLmgNCj4gPiA+IGluZGV4IGI2ZTIwN2QyY2UuLjM5ZTBhODlhMjkgMTAwNjQ0DQo+ID4g PiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5oDQo+ID4g PiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJDb21waWxlci5oDQo+ID4g PiBAQCAtNTIsNiArNTIsOSBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiAgICBCT09MRUFOIFdh cm5pbmdBc0Vycm9yOyAgIEJPT0xFQU4gQXV0b0RlZmF1bHQ7ICAgQk9PTEVBTg0KPiA+ID4gQ2hl Y2tEZWZhdWx0OysgIEJPT0xFQU4gSXNDYXRjaERlZmF1bHRFbmFibGU7KyAgQ0hBUjgqKg0KPiA+ IEV4Y2VwdGlvbkxpc3Q7Kw0KPiA+ID4gSU5UMTYgICAgRXhjZXB0aW9uTGlzdFNpemU7IH0gT1BU SU9OUzsgIHR5cGVkZWYgZW51bSB7ZGlmZiAtLWdpdA0KPiA+ID4gYS9CYXNlVG9vbHMvU291cmNl L0MvVmZyQ29tcGlsZS9WZnJFcnJvci5jcHANCj4gPiA+IGIvQmFzZVRvb2xzL1NvdXJjZS9DL1Zm ckNvbXBpbGUvVmZyRXJyb3IuY3BwDQo+ID4gPiBpbmRleCA2NWJiOGUzNGZkLi44YTcwNmY5Mjli IDEwMDY0NA0KPiA+ID4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL1ZmckNvbXBpbGUvVmZyRXJy b3IuY3BwDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJv ci5jcHANCj4gPiA+IEBAIC00OSw3ICs0OSw4IEBAIHN0YXRpYyBTVkZSX1dBUk5JTkdfSEFORExF DQo+ID4gVkZSX1dBUk5JTkdfSEFORExFX1RBQkxFDQo+ID4gPiBbXSA9IHsNCj4gPiA+ICAgIHsg VkZSX1dBUk5JTkdfREVGQVVMVF9WQUxVRV9SRURFRklORUQsICI6IGRlZmF1bHQgdmFsdWUNCj4g PiByZS1kZWZpbmVkDQo+ID4gPiB3aXRoIGRpZmZlcmVudCB2YWx1ZSJ9LCAgIHsgVkZSX1dBUk5J TkdfQUNUSU9OX1dJVEhfVEVYVF9UV08sICI6DQo+ID4gQWN0aW9uDQo+ID4gPiBvcGNvZGUgc2hv dWxkIG5vdCBoYXZlIFRleHRUd28gcGFydCJ9LCB7IA0KPiA+ID4gVkZSX1dBUk5JTkdfT0JTT0xF VEVEX0ZSQU1FV09SS19PUENPREUsICI6IE5vdCByZWNvbW1lbmQNCj4gdG8NCj4gPiB1c2UNCj4g PiA+IG9ic29sZXRlZCBmcmFtZXdvcmsgb3Bjb2RlIn0sLSAgeyBWRlJfV0FSTklOR19DT0RFVU5E RUZJTkVELCAiOg0KPiA+ID4gdW5kZWZpbmVkIFdhcm5pbmcgQ29kZSIgfSsgIHsgVkZSX1dBUk5J TkdfQ09ERVVOREVGSU5FRCwgIjoNCj4gPiA+IHVuZGVmaW5lZCBXYXJuaW5nIENvZGUiIH0sKyAg eyBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCwgIjogcGxzDQo+ID4gcmVtb3ZlDQo+ID4gPiB0aGUg ZGVmYXVsdCB2YWx1ZXMgaWYgbmVjZXNzYXJ5IiB9IH07IA0KPiA+ID4gQ1ZmckVycm9ySGFuZGxl OjpDVmZyRXJyb3JIYW5kbGUgKGRpZmYgLS0gZ2l0IA0KPiA+ID4gYS9CYXNlVG9vbHMvU291cmNl L0MvVmZyQ29tcGlsZS9WZnJFcnJvci5oDQo+ID4gPiBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJD b21waWxlL1ZmckVycm9yLmgNCj4gPiA+IGluZGV4IDdkMTZiZDVmNzQuLjFiNGJjMTczZDIgMTAw NjQ0DQo+ID4gPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJvci5o DQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJFcnJvci5oDQo+ ID4gPiBAQCAtNDcsNyArNDcsOCBAQCB0eXBlZGVmIGVudW0gew0KPiA+ID4gICAgVkZSX1dBUk5J TkdfREVGQVVMVF9WQUxVRV9SRURFRklORUQgPSAwLCANCj4gPiA+IFZGUl9XQVJOSU5HX0FDVElP Tl9XSVRIX1RFWFRfVFdPLA0KPiA+ID4gVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09SS19P UENPREUsLQ0KPiA+ID4gVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRCsNCj4gVkZSX1dBUk5JTkdf Q09ERVVOREVGSU5FRCwrDQo+ID4gPiBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCB9IEVGSV9WRlJf V0FSTklOR19DT0RFOyAgdHlwZWRlZg0KPiA+IHN0cnVjdA0KPiA+ID4gX1NWRlJfRVJST1JfSEFO RExFIHtkaWZmIC0tZ2l0DQo+ID4gPiBhL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1Zm ckZvcm1Qa2cuaA0KPiA+ID4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJGb3Jt UGtnLmgNCj4gPiA+IGluZGV4IDllZjZmMDc3ODcuLmQ4ZmFkYTNiY2IgMTAwNjQ0DQo+ID4gPiAt LS0gYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJGb3JtUGtnLmgNCj4gPiA+ICsr KyBiL0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmckZvcm1Qa2cuaA0KPiA+ID4gQEAg LTk2LDYgKzk2LDcgQEAgc3RydWN0IFNCdWZmZXJOb2RlIHsNCj4gPiA+ICAgdHlwZWRlZiBzdHJ1 Y3QgeyAgIEVGSV9HVUlEICpPdmVycmlkZUNsYXNzR3VpZDsrICBCT09MRUFODQo+ID4gPiBJc0Nh dGNoRGVmYXVsdEVuYWJsZTsgfSBJTlBVVF9JTkZPX1RPX1NZTlRBWDsgIGNsYXNzIENGb3JtUGtn IA0KPiA+ID4ge2RpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJT eW50YXguZw0KPiA+ID4gYi9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJTeW50YXgu Zw0KPiA+ID4gaW5kZXggNTVmZDA2N2Y4YS4uNWRhZjFjNDIzYyAxMDA2NDQNCj4gPiA+IC0tLSBh L0Jhc2VUb29scy9Tb3VyY2UvQy9WZnJDb21waWxlL1ZmclN5bnRheC5nDQo+ID4gPiArKysgYi9C YXNlVG9vbHMvU291cmNlL0MvVmZyQ29tcGlsZS9WZnJTeW50YXguZw0KPiA+ID4gQEAgLTUwLDYg KzUwLDcgQEAgVmZyUGFyc2VyU3RhcnQgKA0KPiA+ID4gIHsgICBQYXJzZXJCbGFja0JveDxDVmZy RExHTGV4ZXIsIEVmaVZmclBhcnNlciwgQU5UTFJUb2tlbj4NCj4gPiBWZnJQYXJzZXIoRmlsZSk7 DQo+ID4gPiBWZnJQYXJzZXIucGFyc2VyKCktPlNldE92ZXJyaWRlQ2xhc3NHdWlkDQo+ID4gPiAo SW5wdXRJbmZvLT5PdmVycmlkZUNsYXNzR3VpZCk7Kw0KPiA+ID4gVmZyUGFyc2VyLnBhcnNlcigp LT5TZXRJc0NhdGNoRGVmYXVsdEVuYWJsZShJbnB1dEluZm8tDQo+ID4gPiA+SXNDYXRjaERlZmF1 bHRFbmFibGUpOyAgIHJldHVybg0KPiA+IFZmclBhcnNlci5wYXJzZXIoKS0+dmZyUHJvZ3JhbSgp OyB9ID4+QEAgLQ0KPiA+ID4gMzg2LDggKzM4Nyw4IEBAIGRhdGFTdHJ1Y3RGaWVsZDMyIFtCT09M RUFOICBGaWVsZEluVW5pb25dOg0KPiA+ID4gICAgOyAgZGF0YVN0cnVjdEZpZWxkMTYgW0JPT0xF QU4gIEZpZWxkSW5Vbmlvbl06LSAgPDwgLSAgICBVSU5UMzINCj4gPiBBcnJheU51bSA9IDA7DQo+ ID4gPiArICA8PCsgICAgVUlOVDMyIEFycmF5TnVtID0gMDsgICA+PiAgICgiVUlOVDE2IiB8ICJD SEFSMTYiKQ0KPiA+ID4gTjpTdHJpbmdJZGVudGlmaWVyQEAgLTczNyw3ICs3MzgsNyBAQCB2ZnJG b3JtU2V0TGlzdCA6DQo+ID4gPiAgICA7ICB2ZnJTdGF0ZW1lbnRFeHRlbnNpb246LSAgPDwgKyAg PDwgICAgICBFRklfR1VJRCBHdWlkOw0KPiA+IENJZnJHdWlkICpHdWlkT2JqDQo+ID4gPiA9IE5V TEw7ICAgICAgQ0hBUjggICAgKlR5cGVOYW1lID0gTlVMTDtAQCAtNzUxLDcgKzc1Miw3IEBADQo+ ID4gPiB2ZnJTdGF0ZW1lbnRFeHRlbnNpb246DQo+ID4gPiAgICA+PiAgIEw6R3VpZE9wICAgVXVp ZCAiPSIgZ3VpZERlZmluaXRpb25bR3VpZF0tICB7IiwiIERhdGFUeXBlICI9Ig0KPiArDQo+ID4g eyIsIg0KPiA+ID4gRGF0YVR5cGUgIj0iICAgICAoICAgICAgICAgVTY0OiJVSU5UNjQiIHtPcGVu QnJhY2tldCBBTjE6TnVtYmVyDQo+ID4gQ2xvc2VCcmFja2V0DQo+ID4gPiA8PEFycmF5TnVtID0g X1NUT1UzMihBTjEtPmdldFRleHQoKSwgQU4xLT5nZXRMaW5lKCkpOz4+fSA8PA0KPiBUeXBlTmFt ZQ0KPiA+ID0NCj4gPiA+IFU2NC0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gVTY0LT5nZXRMaW5lKCk7 ID4+QEAgLTc3MCw3DQo+ID4gPiArNzcxLDcgQEAgdmZyU3RhdGVtZW50RXh0ZW5zaW9uOg0KPiA+ ID4gICAgICAgIHwgVDoiRUZJX0hJSV9USU1FIiB7T3BlbkJyYWNrZXQgQU44Ok51bWJlciBDbG9z ZUJyYWNrZXQgDQo+ID4gPiA8PEFycmF5TnVtID0gX1NUT1UzMihBTjgtPmdldFRleHQoKSwgQU44 LT5nZXRMaW5lKCkpOz4+fSA8PA0KPiBUeXBlTmFtZQ0KPiA+ID4gPSBULT5nZXRUZXh0KCk7IExp bmVOdW0gPSBULT5nZXRMaW5lKCk7IElzU3RydWN0ID0gVFJVRTs+Pg0KPiA+IHwNCj4gPiA+IFI6 IkVGSV9ISUlfUkVGIiB7T3BlbkJyYWNrZXQgQU45Ok51bWJlciBDbG9zZUJyYWNrZXQgPDxBcnJh eU51bSA9IA0KPiA+ID4gX1NUT1UzMihBTjktPmdldFRleHQoKSwgQU45LT5nZXRMaW5lKCkpOz4+ fS0gPDwgVHlwZU5hbWUgPQ0KPiA+ID4gUi0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gUi0+Z2V0TGlu ZSgpOyBJc1N0cnVjdCA9IFRSVUU7Pj4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PA0KPiA+IFR5cGVOYW1lID0NCj4gPiA+ICsg Ui0+Z2V0VGV4dCgpOyBMaW5lTnVtID0gUi0NCj4gPiA+ID5nZXRMaW5lKCk7IElzU3RydWN0ID0g VFJVRTs+PiAgICAgICB8IFROOlN0cmluZ0lkZW50aWZpZXIge09wZW5CcmFja2V0DQo+ID4gPiBB TjEwOk51bWJlciBDbG9zZUJyYWNrZXQgPDxBcnJheU51bSA9IF9TVE9VMzIoQU4xMC0+Z2V0VGV4 dCgpLA0KPiA+IEFOMTAtDQo+ID4gPiA+Z2V0TGluZSgpKTs+Pn0NCj4gPiA8PCBUeXBlTmFtZSA9 IFROLT5nZXRUZXh0KCk7DQo+ID4gPiBMaW5lTnVtID0gVE4tPmdldExpbmUoKTsgSXNTdHJ1Y3Qg PSBUUlVFOz4+ICAgICApQEAgLTg3NSwxOSArODc2LDE5DQo+ID4gQEANCj4gPiA+IHZmckV4dGVu c2lvbkRhdGFbVUlOVDggKkRhdGFCdWZmLCBVSU5UMzIgU2l6ZSwgQ0hBUjggKlR5cGVOYW1lLA0K PiA+IFVJTlQzMg0KPiA+ID4gVHlwZVNpemUsDQo+ID4gPiAgICAgICAgICAgICAgICAgIG1lbWNw eSAoQnl0ZU9mZnNldCwgJkRhdGFfVTY0LA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9 ZWxzZSBpZiAoc3RyY21wDQo+ID4gPiAoIlVJTlQzMiIsIFR5cGVOYW1lKSA9PSAwKSB7ICAgICAg ICAgICAgICAgICBEYXRhX1UzMiA9DQo+ID4gX1NUT1UzMihSRC0+Z2V0VGV4dCgpLA0KPiA+ID4g UkQtPmdldExpbmUoKSk7LSAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZEYXRh X1UzMiwNCj4gPiBUeXBlU2l6ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0 ZU9mZnNldCwgJkRhdGFfVTMyLA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ZWxzZSBp ZiAoc3RyY21wDQo+ID4gPiAoIlVJTlQxNiIsIFR5cGVOYW1lKSA9PSAwKSB7ICAgICAgICAgICAg ICAgICBEYXRhX1UxNiA9DQo+ID4gX1NUT1UxNihSRC0+Z2V0VGV4dCgpLA0KPiA+ID4gUkQtPmdl dExpbmUoKSk7LSAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZEYXRhX1UxNiwN Cj4gPiBUeXBlU2l6ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNl dCwgJkRhdGFfVTE2LA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ZWxzZSBpZiAoc3Ry Y21wDQo+ID4gPiAoIlVJTlQ4IiwgVHlwZU5hbWUpID09IDApIHsgICAgICAgICAgICAgICAgIERh dGFfVTggPQ0KPiA+IF9TVE9VOChSRC0+Z2V0VGV4dCgpLCBSRC0NCj4gPiA+ID5nZXRMaW5lKCkp Oy0gICAgICAgICAgICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9VOCwNCj4gVHlwZVNp emUpOw0KPiA+ID4gKyAgICAgICAgICAgICAgICBtZW1jcHkgKEJ5dGVPZmZzZXQsICZEYXRhX1U4 LA0KPiA+IFR5cGVTaXplKTsgICAgICAgICAgICAgICB9ZWxzZSBpZiAoc3RyY21wDQo+ID4gPiAo IkJPT0xFQU4iLCBUeXBlTmFtZSk9PSAwKSB7ICAgICAgICAgICAgICAgICBEYXRhX0JMID0NCj4g PiBfU1RPVTgoUkQtPmdldFRleHQoKSwNCj4gPiA+IFJELT5nZXRMaW5lKCkpOy0gICAgICAgICAg ICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LCAmRGF0YV9CTCwNCj4gPiBUeXBlU2l6ZSk7DQo+ID4g PiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNldCwgJkRhdGFfQkwsDQo+ID4gVHlw ZVNpemUpOyAgICAgICAgICAgICAgIH1lbHNlIGlmIChzdHJjbXANCj4gPiA+ICgiRUZJX1NUUklO R19JRCIsIFR5cGVOYW1lKSA9PSAwKSB7ICAgICAgICAgICAgICAgICBEYXRhX1NJRCA9DQo+ID4g X1NUT1NJRChSRC0NCj4gPiA+ID5nZXRUZXh0KCksIFJELT5nZXRMaW5lKCkpOy0gICAgICAgICAg ICAgICAgbWVtY3B5IChCeXRlT2Zmc2V0LA0KPiA+ICZEYXRhX1NJRCwNCj4gPiA+IFR5cGVTaXpl KTsNCj4gPiArICAgICAgICAgICAgICAgIG1lbWNweSAoQnl0ZU9mZnNldCwNCj4gPiA+ICZEYXRh X1NJRCwgVHlwZVNpemUpOyAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgfSBlbHNlDQo+ID4g PiB7ICAgICAgICAgICAgICAgZ0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFGaWVsZEluZm8oVEZO YW1lLA0KPiA+IEZpZWxkT2Zmc2V0LA0KPiA+ID4gRmllbGRUeXBlLCBGaWVsZFNpemUsIEJpdEZp ZWxkKTtAQCAtOTc1LDcgKzk3NiwxNSBAQA0KPiA+ID4gdmZyRXh0ZW5zaW9uRGF0YVtVSU5UOCAq RGF0YUJ1ZmYsIFVJTlQzMiBTaXplLCBDSEFSOCAqVHlwZU5hbWUsDQo+ID4gVUlOVDMyDQo+ID4g PiBUeXBlU2l6ZSwNCj4gPiA+ICAgdmZyU3RhdGVtZW50RGVmYXVsdFN0b3JlIDogICA8PCBVSU5U MTYgIERlZmF1bHRJZCA9DQo+ID4gPiBFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RBTkRBUkQ7ID4+ LSAgRDpEZWZhdWx0U3RvcmUNCj4gPiBOOlN0cmluZ0lkZW50aWZpZXINCj4gPiA+ICIsIisgIEQ6 RGVmYXVsdFN0b3JlIE46U3RyaW5nSWRlbnRpZmllciAiLCIgICAgICAgICAgICAgPDwrDQo+ID4g PiBpZiAobUlzQ2F0Y2hEZWZhdWx0RW5hYmxlKSB7Kw0KPiA+ID4gZ0NWZnJFcnJvckhhbmRsZS5I YW5kbGVXYXJuaW5nICgrDQo+ID4gPiBWRlJfV0FSTklOR19VTlNVUFBPUlRFRCwrDQo+ID4gRC0N Cj4gPiA+ID5nZXRMaW5lKCksKw0KPiA+IEQtDQo+ID4gPiA+Z2V0VGV4dCgpKw0KPiA+ICAgICAg ICApOysNCj4gPiAgfSsNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA+Pg0KPiA+IFByb21wdCAiPSIgIlNUUklOR19UT0tFTiIgIlwoIiBT Ok51bWJlcg0KPiA+ID4gIlwpIiAgIHsgICAgICIsIiBBdHRyaWJ1dGUgIj0iIEE6TnVtYmVyICAg ICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gRGVmYXVsdElkID0gX1NUT1UxNihBLQ0KPiA+ID4g PmdldFRleHQoKSwgQS0+Z2V0TGluZSgpKTsgPj5AQCAtMTA3NCw3ICsxMDgzLDcgQEANCj4gPiA+ IHZmclN0YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gPiA+ICAgICAgfCBVNjQ6IlVJTlQ2NCIgIiwi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBUeXBlTmFtZSA9IFU2NC0+Z2V0 VGV4dCgpOw0KPiA+ID4gTGluZU51bSA9IFU2NC0+Z2V0TGluZSgpOyA+PiAgICAgfCBEOiJFRklf SElJX0RBVEUiICIsIg0KPiA+IDw8DQo+ID4gPiBUeXBlTmFtZSA9IEQtPmdldFRleHQoKTsgTGlu ZU51bSA9IEQtPmdldExpbmUoKTsgPj4gICAgIHwNCj4gPiBUOiJFRklfSElJX1RJTUUiDQo+ID4g PiAiLCIgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFR5cGVOYW1lID0gVC0+Z2V0VGV4dCgp OyBMaW5lTnVtDQo+ID0NCj4gPiBULT5nZXRMaW5lKCk7ID4+LSAgICB8DQo+ID4gPiBSOiJFRklf SElJX1JFRiIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHlwZU5hbWUgPQ0KPiA+ IFItPmdldFRleHQoKTsgTGluZU51bSA9IFItDQo+ID4gPiA+Z2V0TGluZSgpOyA+PiAgICArICAg IHwgUjoiRUZJX0hJSV9SRUYiICIsIg0KPiA+IDw8IFR5cGVOYW1lID0gUi0NCj4gPiA+ID5nZXRU ZXh0KCk7IExpbmVOdW0gPSBSLT5nZXRMaW5lKCk7ID4+ICAgKSAgIHsgICAgIFZhcklkICI9Ig0K PiBJRDpOdW1iZXINCj4gPiAiLCINCj4gPiA+IDw8QEAgLTEwOTIsOCArMTEwMSw4IEBAIHZmclN0 YXRlbWVudFZhclN0b3JlRWZpIDoNCj4gPiA+ICAgICggICAgIE5hbWUgICAgIj0iIFNOOlN0cmlu Z0lkZW50aWZpZXIgIiwiICAgICAgICAgICAgIDw8DQo+ID4gU3RvcmVOYW1lID0gU04tDQo+ID4g PiA+Z2V0VGV4dCgpOyAgID4+ICAgIHwtICAgIE5hbWUgICAgIj0iICJTVFJJTkdfVE9LRU4iICJc KCINCj4gPiBWTjpOdW1iZXIgIlwpIiAiLCIgIC0NCj4gPiA+IFZhclNpemUgIj0iIE46TnVtYmVy ICIsIiAgICAgICAgICAgICAgICAgICAgICAgIDw8ICsgICAgTmFtZQ0KPiA+ICI9IiAiU1RSSU5H X1RPS0VOIg0KPiA+ID4gIlwoIiBWTjpOdW1iZXIgIlwpIiAiLCIrICAgIFZhclNpemUgIj0iIE46 TnVtYmVyICIsIg0KPiA+IDw8DQo+ID4gPiBJc1VFRkkyM0VmaVZhcnN0b3JlID0gRkFMU0U7DQo+ ID4gU3RvcmVOYW1lID0NCj4gPiA+IGdDVmZyU3RyaW5nREIuR2V0VmFyU3RvcmVOYW1lRm9ybVN0 cmluZ0lkKF9TVE9TSUQoVk4tPmdldFRleHQoKSwNCj4gVk4tDQo+ID4gPiA+Z2V0TGluZSgpKSk7 DQo+ID4gaWYgKFN0b3JlTmFtZSA9PSBOVUxMKSB7QEAgLQ0KPiA+ID4gMTExNiw3ICsxMTI1LDcg QEAgdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkgOg0KPiA+ID4NCj4gPiBicmVhazsNCj4gPiBjYXNl IDg6DQo+ID4gPiBUeXBlTmFtZSA9IChDSEFSOCAqKSAiVUlOVDY0IjstDQo+ID4gYnJlYWs7ICsN Cj4gPiA+IGJyZWFrOw0KPiA+IGRlZmF1bHQ6DQo+ID4gPiBfUENBVENIIChWRlJfUkVUVVJOX1VO U1VQUE9SVEVELCBOKTsgYnJlYWs7QEAgLTExMjQsNyArMTEzMyw3DQo+IEBADQo+ID4gPiB2ZnJT dGF0ZW1lbnRWYXJTdG9yZUVmaSA6DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID4+ICAgKQ0KPiAtDQo+ID4gVXVpZCAiPSIgZ3VpZERl ZmluaXRpb25bR3VpZF0NCj4gPiA+IDw8ICsgIFV1aWQgIj0iIGd1aWREZWZpbml0aW9uW0d1aWRd ICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+IGlmIChJc1VFRkkyM0VmaVZhcnN0b3JlKQ0K PiA+ID4NCj4gPg0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfUENBVA0KPiA+IENIKGdDVmZyRGF0YVN0b3JhZ2UuRGVjbGFyZUJ1ZmZl clZhclMNCj4gPiA+IHRvcmUNCj4gPiAoDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmVOYW1lLEBAIC0xMTUwLDcNCj4gPiA+ICsxMTU5LDcgQEAgdmZyU3RhdGVtZW50VmFyU3RvcmVF ZmkgOg0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IA0KPiA+ID4gVlNFT2JqLlNldEd1aWQgKCZHdWlkKTsNCj4gPiBWU0VPYmou U2V0VmFyU3RvcmVJZA0KPiA+ID4gKFZhclN0b3JlSWQpOy0NCj4gPiArDQo+ID4gPiBWU0VPYmou U2V0U2l6ZSAoKFVJTlQxNikgU2l6ZSk7DQo+ID4gPiBWU0VPYmouU2V0TmFtZSAoU3RvcmVOYW1l KTsNCj4gPiBpZg0KPiA+ID4gKElzVUVGSTIzRWZpVmFyc3RvcmUgPT0gRkFMU0UgJiYgU3RvcmVO YW1lICE9IE5VTEwpIHtAQCAtMTE4NCw3DQo+ID4gPiArMTE5Myw3IEBAIHZmclN0YXRlbWVudFZh clN0b3JlTmFtZVZhbHVlIDoNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPj4gICB9DQo+ID4gKC0gICAgTmFtZSAiPSIgIlNUUklOR19U T0tFTiIgIlwoIg0KPiA+ID4gTjpOdW1iZXIgIlwpIiAiLCIgIDw8ICsgICAgTmFtZSAiPSIgIlNU UklOR19UT0tFTiIgIlwoIiBOOk51bWJlcg0KPiA+ICJcKSIgIiwiDQo+ID4gPiA8PCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYNCj4gPiAo IUNyZWF0ZWQpDQo+ID4gPg0KPiA+DQo+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgX1BDDQo+ID4gQVRDSChnQ1ZmckRhdGFTdG9yYWdl LkRlY2xhcmVOYW1lVmFyDQo+ID4gPiBTdG9yZUJlZ2luIChTTi0+Z2V0VGV4dCgpLCBWYXJTdG9y ZUlkKSwgU04pOyBDcmVhdGVkID0gVFJVRTtAQA0KPiA+ID4gLTEyNDUsMTIgKzEyNTQsMTIgQEAg dmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldCA6DQo+ID4gPiAgdmZyU3RhdGVtZW50U3VwcHJl c3NJZkZvcm1TZXQgOiAgIDw8IENJZnJTdXBwcmVzc0lmIFNJT2JqOz4+DQo+ID4gTDpTdXBwcmVz c0lmDQo+ID4gPiA8PC0NCj4gPiBTSU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsgKw0KPiA+ ID4NCj4gPiBTSU9iai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsNCj4gPiAgICAgICAgICAgICAg ICAgICA+PiAgIHsgRkxBR1MgIj0iDQo+ID4gPiBmbGFnc0ZpZWxkICggIlx8IiBmbGFnc0ZpZWxk ICkqICIsIiB9ICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblswXSAiOyINCj4gPiA+IHZmckZvcm1T ZXRMaXN0LSAgRTogRW5kSWYgKyAgRTogRW5kSWYgICAiOyINCj4gPiA8PA0KPiA+ID4gQ1JUX0VO RF9PUCAoRSk7ID4+ICAgOyBAQCAtMTQ5MSw3ICsxNTAwLDcgQEANCj4gPiB2ZnJRdWVzdGlvbkRh dGFGaWVsZE5hbWUNCj4gPiA+IFtFRklfUVVFU1RJT05fSUQgJlFJZCwgVUlOVDMyICZNYXNrLCBD SEFSOCAqJlZhcklkU3RyLA0KPiA+ID4gICAgKCAgICAgU04yOlN0cmluZ0lkZW50aWZpZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBfU1RSQ0FUICgmVmFySWRTdHIsIFNOMi0N Cj4gPiA+ID5nZXRUZXh0KCkpOyBMaW5lTm8gPSBTTjItPmdldExpbmUoKTsgPj4gICAgICgtICAg ICAgIi4iDQo+ID4gPDwgKw0KPiA+ID4gIi4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDw8DQo+ID4gX1NUUkNBVA0KPiA+ID4gKCZWYXJJZFN0ciwgIi4iKTsNCj4g PiBpZg0KPiA+ID4gKG1Db25zdGFudE9ubHlJbkV4cHJlc3Npb24pDQo+ID4gPg0KPiA+DQo+IHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X1BDDQo+ID4gQVRDSChWRlJfUkVUVVJOX0NPTlNUQU5UX09OTFksDQo+ID4gPiBMaW5lTm8pO0BA IC0xNTE4LDcgKzE1MjcsNyBAQCB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUgDQo+ID4gPiBbRUZJ X1FVRVNUSU9OX0lEICZRSWQsIFVJTlQzMiAmTWFzaywgQ0hBUjggKiZWYXJJZFN0ciwNCj4gPiA+ ICAgIDsgIHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBlLCBFRklfSUZSX1RZUEVfVkFM VUUgJlZhbHVlLA0KPiA+ID4gQk9PTEVBTiAmTGlzdFR5cGVdIDotICA8PCAgKyAgPDwgICAgIEVG SV9HVUlEICAgIEd1aWQ7DQo+ID4gQk9PTEVBTiAgICAgTmVnYXRpdmUgPQ0KPiA+ID4gRkFMU0U7 ICAgICBCT09MRUFOICAgICBJbnREZWNTdHlsZSA9IEZBTFNFO0BAIC0xNjM0LDExICsxNjQzLDEx DQo+ID4gQEANCj4gPiA+IHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBlLCBFRklfSUZS X1RZUEVfVkFMVUUgJlZhbHVlLA0KPiA+IEJPT0xFQU4NCj4gPiA+ICZMaXN0VHlwZV0NCj4gPiA+ ICAgIHwgWjpaZXJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwN Cj4gPiAkVmFsdWUudTggICAgID0gX1NUT1U4KFotPmdldFRleHQoKSwgWi0NCj4gPiA+ID5nZXRM aW5lKCkpOyA+PiAgIHwgSE9VUjpOdW1iZXIgIjoiIE1JTlVURTpOdW1iZXIgIjoiDQo+ID4gU0VD T05EOk51bWJlciA8PA0KPiA+ID4gJFZhbHVlLnRpbWUgICA9IF9TVE9UKEhPVVItPmdldFRleHQo KSwgTUlOVVRFLT5nZXRUZXh0KCksU0VDT05ELQ0KPiA+ID4gPmdldFRleHQoKSwgSE9VUi0+Z2V0 TGluZSgpKTsgPj4gICB8IFlFQVI6TnVtYmVyICIvIiBNT05USDpOdW1iZXINCj4gPiAiLyINCj4g PiA+IERBWTpOdW1iZXIgICAgIDw8ICRWYWx1ZS5kYXRlICAgPSBfU1RPRChZRUFSLT5nZXRUZXh0 KCksDQo+ID4gTU9OVEgtPmdldFRleHQoKSwNCj4gPiA+IERBWS0+Z2V0VGV4dCgpLCBZRUFSLT5n ZXRMaW5lKCkpOyA+Pi0gIHwgUUk6TnVtYmVyIjsiIEZJOk51bWJlciI7Ig0KPiA+ID4gZ3VpZERl ZmluaXRpb25bR3VpZF0gIjsiICJTVFJJTkdfVE9LRU4iICJcKCIgRFA6TnVtYmVyICJcKSIgKyAg fCANCj4gPiA+IFFJOk51bWJlciI7IiBGSTpOdW1iZXIiOyIgZ3VpZERlZmluaXRpb25bR3VpZF0g IjsiICJTVFJJTkdfVE9LRU4iICJcKCINCj4gPiA+IERQOk51bWJlciAiXCkiDQo+ID4gPDwgJFZh bHVlLnJlZiAgICA9IF9TVE9SKFFJLQ0KPiA+ID4gPmdldFRleHQoKSwgRkktPmdldFRleHQoKSwg Jkd1aWQsIERQLT5nZXRUZXh0KCksIFFJLT5nZXRMaW5lKCkpOyA+PiAgIHwNCj4gPiA+ICJTVFJJ TkdfVE9LRU4iICJcKCIgUzE6TnVtYmVyICJcKSIgICAgICAgICAgICAgIDw8ICRWYWx1ZS5zdHJp bmcgPQ0KPiA+IF9TVE9TSUQoUzEtDQo+ID4gPiA+Z2V0VGV4dCgpLCBTMS0+Z2V0TGluZSgpKTsg Pj4gICB8ICJceyINCj4gPiA8PCBMaXN0VHlwZSA9DQo+ID4gPiBUUlVFOyA+Pi0gICAgICBMMTpO dW1iZXINCj4gPiA8PCArICAgICAgTDE6TnVtYmVyDQo+ID4gPiA8PA0KPiA+IHN3aXRjaCAoVHlw ZSkNCj4gPiA+DQo+ID4NCj4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXNlDQo+ID4gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzggOg0K PiA+ID4gVHlwZThbSW5kZXhdICA9IF9TVE9VOChMMS0+Z2V0VGV4dCgpLCBMMS0+Z2V0TGluZSgp KTtAQCAtMTY1OCw4DQo+ID4gPiArMTY2Nyw4IEBAIHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5U OCBUeXBlLCBFRklfSUZSX1RZUEVfVkFMVUUNCj4gPiA+ICZWYWx1ZSwgQk9PTEVBTiAmTGlzdFR5 cGVdDQo+ID4gPg0KPiA+DQo+IEluZGV4Kys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA+Pg0KPiA+ICgtDQo+ID4gPiAiLCIgLSAgICAgICAgTDI6 TnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCArDQo+ID4gIiwiKyAg ICAgICAgTDI6TnVtYmVyDQo+ID4gPiA8PA0KPiA+IHN3aXRjaCAoVHlwZSkNCj4gPiA+DQo+ID4N Cj4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjYXNlDQo+ID4gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzggOg0KPiA+ID4gVHlwZThbSW5k ZXhdICA9IF9TVE9VOChMMi0+Z2V0VGV4dCgpLCBMMi0+Z2V0TGluZSgpKTtAQCAtMTY3OSw3DQo+ ID4gPiArMTY4OCw3IEBAIHZmckNvbnN0YW50VmFsdWVGaWVsZFtVSU5UOCBUeXBlLCBFRklfSUZS X1RZUEVfVkFMVUUNCj4gPiA+ICZWYWx1ZSwgQk9PTEVBTiAmTGlzdFR5cGVdDQo+ID4gPg0KPiA+ ID4NCj4gPg0KPiBJbmRleCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPj4NCj4gPiAgICAgICAgKSotICAgICJcfSIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KPiA+ID4gIlx9IiAgIDsNCj4gPiA+DQo+ID4N Cj4gLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioNCj4gPiAqKg0KPiA+ID4gKioqKioqKioqKioqKioqQEAgLTE3MTQsNyArMTcyMyw3 IEBAIHZmckZvcm1EZWZpbml0aW9uIDoNCj4gPiA+ICAgIDsgIHZmckZvcm1NYXBEZWZpbml0aW9u IDotICA8PCArICA8PCAgICAgQ0lmckZvcm1NYXAgKkZNYXBPYmoNCj4gPQ0KPiA+IE5VTEw7DQo+ ID4gPiBVSU5UMzIgICAgICBGb3JtTWFwTWV0aG9kTnVtYmVyID0gMDsgICAgIEVGSV9HVUlEDQo+ IEd1aWQ7QEANCj4gPiAtMTc3NSwxMQ0KPiA+ID4gKzE3ODQsMTUgQEAgdmZyU3RhdGVtZW50RGVm YXVsdCA6DQo+ID4gPiAgICAgICBDSWZyTnVtZXJpYyAgICAgICAgICAgKk51bWVyaWNRc3QgICA9 IE5VTEw7ICAgID4+LQ0KPiA+IEQ6RGVmYXVsdA0KPiA+ID4gKyAgRDpEZWZhdWx0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCsNCj4gPiBpZg0KPiA+ID4gKG1Jc0Nh dGNoRGVmYXVsdEVuYWJsZSkgeysNCj4gPiA+IERlZmF1bHRWYWx1ZUVycm9yKFZGUl9SRVRVUk5f VU5TVVBQT1JURUQsIEQtDQo+ID4gPiA+Z2V0TGluZSgpKTsrDQo+ID4gICAgICAgfSsNCj4gPj4N Cj4gPiA+ICggICAgICgtICAgICAgIj0iIHZmckNvbnN0YW50VmFsdWVGaWVsZFtfR0VUX0NVUlJR RVNUX0RBVEFUWVBFKCksDQo+ID4gKlZhbCwNCj4gPiA+IEFycmF5VHlwZV0gIiwiICAtDQo+ID4g PDwgKyAgICAgICI9Ig0KPiA+ID4gdmZyQ29uc3RhbnRWYWx1ZUZpZWxkW19HRVRfQ1VSUlFFU1Rf REFUQVRZUEUoKSwgKlZhbCwgQXJyYXlUeXBlXQ0KPiAiLCIrDQo+ID4gPiA8PA0KPiBpZg0KPiA+ IChnQ3VycmVudE1pbk1heERhdGEgIT0gTlVMTCAmJg0KPiA+ID4gZ0N1cnJlbnRNaW5NYXhEYXRh LT5Jc051bWVyaWNPcGNvZGUoKSkNCj4gPiA+DQo+ID4NCj4geyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jDQo+ID4gaGVjayBkZWZh dWx0IHZhbHVlIGlzIHZhbGlkIGZvciBOdW1lcmljDQo+ID4gPiBPcGNvZGUNCj4gPiBOdW1lcmlj UXN0ID0gKENJZnJOdW1lcmljICopDQo+ID4gPiBnQ3VycmVudFF1ZXN0aW9uO0BAIC0xODg4LDE0 ICsxOTAxLDE0IEBAIHZmclN0YXRlbWVudERlZmF1bHQgOg0KPiA+ID4gICAgICAgICAgdmZyU3Rh dGVtZW50VmFsdWUgIiwiICAgICAgICAgICAgICAgICAgICAgICA8PCBDSWZyRW5kDQo+ID4gRW5k T2JqMTsNCj4gPiA+IEVuZE9iajEuU2V0TGluZU5vKEQtPmdldExpbmUoKSk7ID4+ICAgICApICAg ICB7LSAgICAgIERlZmF1bHRTdG9yZQ0KPiAiPSINCj4gPiA+IFNOOlN0cmluZ0lkZW50aWZpZXIg IiwiICAgICAgPDwgKyAgICAgIERlZmF1bHRTdG9yZSAiPSINCj4gU046U3RyaW5nSWRlbnRpZmll cg0KPiA+ICIsIiAgICAgIDw8DQo+ID4gPiBfUENBVENIKGdDVmZyRGVmYXVsdFN0b3JlLkdldERl ZmF1bHRJZCAoU04tPmdldFRleHQoKSwgDQo+ID4gPiAmRGVmYXVsdElkKSwgU04pOyBpZiAoRE9i aiAhPSBOVUxMKSB7LQ0KPiA+IERPYmotPlNldERlZmF1bHRJZA0KPiA+ID4gKERlZmF1bHRJZCk7 DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSArDQo+ID4gPiBET2JqLT5TZXREZWZhdWx0SWQNCj4gPiAoRGVmYXVsdElkKTsrDQo+ ID4gICAgIH0NCj4gPiA+IGlmIChET2JqMiAhPSBOVUxMKSB7LQ0KPiA+IERPYmoyLT5TZXREZWZh dWx0SWQNCj4gPiA+IChEZWZhdWx0SWQpOyArDQo+ID4gRE9iajItPlNldERlZmF1bHRJZA0KPiA+ ID4NCj4gPiAoRGVmYXVsdElkKTsNCj4gPiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4NCj4gPiA+ICB9QEAgLTE5MTcsOCArMTkzMCw4 IEBAIHZmclN0YXRlbWVudERlZmF1bHQgOg0KPiA+ID4NCj4gPiAgICAgICAgICk7DQo+ID4gICAg ICB9DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LQ0KPiA+IGlmIChET2JqICAhPSBOVUxMKQ0KPiA+ID4ge2RlbGV0ZSBET2JqO30gLQ0KPiA+IGlm IChET2JqMiAhPSBOVUxMKSB7ZGVsZXRlDQo+ID4gPiBET2JqMjt9ICsNCj4gPiBpZiAoRE9iaiAg IT0gTlVMTCkge2RlbGV0ZSBET2JqO30rDQo+ID4gPiBpZiAoRE9iajIgIT0gTlVMTCkge2RlbGV0 ZQ0KPiA+DQo+IERPYmoyO30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID4+DQo+ID4gICApICAgO0BAIC0NCj4gPiA+IDE5NzAsMTEgKzE5ODMsMTUg QEAgdmZyU3RhdGVtZW50SW52YWxpZCA6DQo+ID4gPiAgICA7ICBmbGFnc0ZpZWxkIDotICBOdW1i ZXIgLSAgfCBJbnRlcmFjdGl2ZUZsYWcgLSAgfCANCj4gPiA+IE1hbnVmYWN0dXJpbmdGbGFnIC0g IHwgRGVmYXVsdEZsYWcgLSAgfCBSZXNldFJlcXVpcmVkRmxhZyArICANCj4gPiA+IE51bWJlcisN Cj4gPiA+IHwgSW50ZXJhY3RpdmVGbGFnKyAgfA0KPiA+ID4gTWFudWZhY3R1cmluZ0ZsYWcrICB8 IEQ6RGVmYXVsdEZsYWcNCj4gPiA8PCsNCj4gPiA+IGlmIChtSXNDYXRjaERlZmF1bHRFbmFibGUp IHsrDQo+ID4gPiBEZWZhdWx0VmFsdWVFcnJvcihWRlJfUkVUVVJOX1VOU1VQUE9SVEVELCBELQ0K PiA+ID4gPmdldExpbmUoKSk7Kw0KPiA+ICAgICAgICAgfSsNCj4gPiA+ID4+KyAgfCBSZXNldFJl cXVpcmVkRmxhZyAgIHwgUmVjb25uZWN0UmVxdWlyZWRGbGFnICAgfA0KPiA+IE46TlZBY2Nlc3NG bGFnDQo+ID4gPiA8PA0KPiA+IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2FybmluZyAoQEAgLQ0K PiA+ID4gMTk4OSw3ICsyMDA2LDcgQEAgZmxhZ3NGaWVsZCA6DQo+ID4gPg0KPiA+ID4gTC0+Z2V0 TGluZSgpLA0KPiA+ID4NCj4gPiBMLT5nZXRUZXh0KCkNCj4gPiAgICAgICAgICApOy0NCj4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ Pg0KPiA+DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPj4gICA7DQo+ID4gPiB2ZnJTdGF0ZW1lbnRWYWx1ZSA6QEAgLTIwMDEsMTMgKzIw MTgsMTMgQEAgdmZyU3RhdGVtZW50VmFsdWUgOg0KPiA+ID4gIHZmclN0YXRlbWVudFJlYWQgOiAg IDw8IENJZnJSZWFkIFJPYmo7ID4+ICAgUjpSZWFkDQo+ID4gPiA8PCBST2JqLlNldExpbmVObyhS LT5nZXRMaW5lKCkpOyA+Pi0gIHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICsNCj4gPiA+ IHZmclN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICAgOyAgdmZyU3RhdGVtZW50V3JpdGUgOiAg IDw8IENJZnJXcml0ZQ0KPiA+IFdPYmo7ID4+DQo+ID4gPiBXOldyaXRlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gV09iai5TZXRMaW5lTm8oVy0+ Z2V0TGluZSgpKTsgPj4tDQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBdICI7IiArICB2 ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBdICI7IiAgIDsNCj4gPiA+IHZmclN0YXRlbWVudFN1YlRp dGxlIDpAQCAtMjE0MCw3ICsyMTU3LDcgQEAgdmZyU3RhdGVtZW50R290byA6DQo+ID4gPiAgICAg ICAgRm9ybUlkICI9IiBGMzpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ ID4gUmVmVHlwZSA9IDI7IEZJZCA9IF9TVE9GSUQoRjMtDQo+ID4gPiA+Z2V0VGV4dCgpLCBGMy0+ Z2V0TGluZSgpKTsgPj4gICAgICAgUXVlc3Rpb24gIj0iICAgICAgICgtDQo+ID4gUU4zOlN0cmlu Z0lkZW50aWZpZXINCj4gPiA+ICIsIiAgICAgICAgICAgICAgICAgICAgIDw8ICsgICAgICAgICAg UU4zOlN0cmluZ0lkZW50aWZpZXIgIiwiDQo+ID4gPDwNCj4gPiA+IG1DVmZyUXVlc3Rpb25EQi5H ZXRRdWVzdGlvbklkIChRTjMtPmdldFRleHQgKCksIE5VTEwsIFFJZCwgDQo+ID4gPiBCaXRNYXNr KTsgaWYgKFFJZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRCkNCj4gPiA+DQo+ID4gew0KPiA+ IF9QQ0FUQ0goVkZSX1JFVFVSTl9VTkRFRklORUQsDQo+ID4gPiBRTjMpO0BAIC0yMjIyLDcgKzIy MzksNyBAQCB2ZnJTdGF0ZW1lbnRHb3RvIDoNCj4gPiA+ICAgICAgIiwiIEtleSAiPSIgS046TnVt YmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBBc3NpZ25RdWVzdGlvbktl eSAoKlFIT2JqLA0KPiA+ID4gS04pOyA+PiAgIH0gICB7LSAgICBFOiIsIiArICAgIEU6IiwiDQo+ ID4gdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0ICAgICAgICAgICAgICAgICAgIDw8DQo+ ID4gPiBPSE9iai0+U2V0U2NvcGUoMSk7IENSVF9FTkRfT1AgKEUpOz4+ICAgfSAgICI7Ig0KPiA+ ID4gPDwgaWYgKFIxT2JqICE9IE5VTEwpIHtkZWxldGUgUjFPYmo7fSBpZiAoUjJPYmogIT0gTlVM TCkge2RlbGV0ZSANCj4gPiA+IFIyT2JqO30gaWYgKFIzT2JqICE9IE5VTEwpIHtkZWxldGUgUjNP Ymo7fSBpZiAoUjRPYmogIT0gTlVMTCkgDQo+ID4gPiB7ZGVsZXRlIFI0T2JqO30gaWYgKFI1T2Jq ICE9DQo+ID4gPiBOVUxMKSB7ZGVsZXRlIFI1T2JqO30+PkBAIC0yNTExLDIwICsyNTI4LDIwIEBA IA0KPiA+ID4gbWluTWF4RGF0ZVN0ZXBEZWZhdWx0W0VGSV9ISUlfREFURSAmIEQsIFVJTlQ4IEtl eVZhbHVlXSA6DQo+ID4gPiAgICB7ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVyICIsIiAgICAg ICAgICAgICAgICAgICAgICAgICA8PA0KPiA+ID4gc3dpdGNoIChLZXlWYWx1ZSkgey0NCj4gPiBj YXNlIDA6ICsNCj4gPiA+IGNhc2UgMDoNCj4gPiBELlllYXIgID0gX1NUT1UxNihOLT5nZXRUZXh0 KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5ZZWFyIDwgX1NUT1UxNiAoTWlu Ti0NCj4gPiA+ID5nZXRUZXh0KCksIE1pbk4tPmdldExpbmUoKSkgfHwgRC5ZZWFyID4gX1NUT1Ux NiAoTWF4Ti0+Z2V0VGV4dCgpLA0KPiA+ID4gPk1heE4tDQo+ID4gPiA+Z2V0TGluZSgpKSkNCj4g PiB7DQo+ID4gICBfUENBVENIDQo+ID4gPiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwg Ti0+Z2V0TGluZSgpLCAiWWVhciBkZWZhdWx0IHZhbHVlDQo+ID4gbXVzdA0KPiA+ID4gYmUgYmV0 d2VlbiBNaW4geWVhciBhbmQgTWF4DQo+ID4geWVhci4iKTsNCj4gPiAgICAgIH0NCj4gPiA+IGJy ZWFrOy0NCj4gPiBjYXNlIDE6IC0NCj4gPiA+IEQuTW9udGggPSBfU1RPVTgoTi0+Z2V0VGV4dCgp LCBOLT5nZXRMaW5lKCkpOyArIGNhc2UgMTorDQo+ID4gRC5Nb250aCA9IF9TVE9VOChOLT5nZXRU ZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5Nb250aCA8IDEgfHwgRC5N b250aCA+IDEyKQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENBVENIDQo+ID4gPiAoVkZSX1JFVFVS Tl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiTW9udGggZGVmYXVsdCB2YWx1ZSAN Cj4gPiA+IG11c3QgYmUgYmV0d2VlbiAxIGFuZA0KPiA+IDEyLiIpOw0KPiA+ICAgICB9DQo+ID4g PiBicmVhazstDQo+ID4gY2FzZSAyOiAtDQo+ID4gPiBELkRheSA9IF9TVE9VOChOLT5nZXRUZXh0 KCksIE4tPmdldExpbmUoKSk7ICsgY2FzZSAyOisNCj4gPiBELkRheSA9IF9TVE9VOChOLT5nZXRU ZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGluZSgpKTsNCj4gPiBpZiAoRC5EYXkgPCAxIHx8IEQuRGF5 ID4gMzEpDQo+ID4gPg0KPiA+IHsNCj4gPiAgIF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJOX0lO VkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJEYXkgZGVmYXVsdCB2YWx1ZQ0KPiA+IG11 c3QNCj4gPiA+IGJlIGJldHdlZW4gMSBhbmQNCj4gPiAzMS4iKTsNCj4gPiAgICAgfUBAIC0yNTcw LDcNCj4gPiA+ICsyNTg3LDcgQEAgdmZyU2V0TWluTWF4U3RlcFtDSWZyTWluTWF4U3RlcERhdGEg JiBNTVNET2JqXSA6DQo+ID4gPiAgICAgICBCT09MRUFOIE1pbk5lZ2F0aXZlID0gRkFMU0U7ICAg ICAgQk9PTEVBTiBNYXhOZWdhdGl2ZSA9DQo+ID4gRkFMU0U7ICAgPj4tDQo+ID4gPiBNaW5pbXVt ICAgIj0iICsgIE1pbmltdW0gICAiPSIgICB7ICAgICAiXC0iDQo+ID4gPDwNCj4gPiA+IE1pbk5l Z2F0aXZlID0gVFJVRTsgPj4gICB9QEAgLTI2NTksOCArMjY3Niw4IEBADQo+ID4gPiB2ZnJTZXRN aW5NYXhTdGVwW0NJZnJNaW5NYXhTdGVwRGF0YSAmIE1NU0RPYmpdIDoNCj4gPiA+DQo+ID4gIH0N Cj4gIH0NCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4tICBN YXhpbXVtICAgIj0iIC0NCj4gPiB7ICsgIE1heGltdW0gICAiPSIrICB7ICAgICAiXC0iDQo+ID4g PiA8PCBNYXhOZWdhdGl2ZSA9IFRSVUU7ID4+ICAgfSAgIEE6TnVtYmVyICIsIg0KPiA+IDw8QEAg LQ0KPiA+ID4gMjg4OSw3ICsyOTA2LDcgQEAgdmZyU3RhdGVtZW50TnVtZXJpYyA6DQo+ID4gPg0K PiAgfQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPj4NCj4gPiA+IHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdC0gIEU6RW5k TnVtZXJpYw0KPiA+IDw8ICsNCj4gPiA+IEU6RW5kTnVtZXJpYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+IENSVF9FTkRfT1AgKEUpOw0KPiA+IGlmIChH dWlkT2JqICE9IE5VTEwpDQo+ID4gPg0KPiA+IHsNCj4gPiBHdWlkT2JqLT5TZXRTY29wZSgxKTtA QCAtMzEzMSw3DQo+ID4gPiArMzE0OCw3IEBAIHZmclN0YXRlbWVudFN0cmluZyA6DQo+ID4gPiAg ICB7ICAgICBLZXkgIj0iIEtOOk51bWJlciAiLCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8PA0KPiA+IEFzc2lnblF1ZXN0aW9uS2V5IChTT2JqLA0KPiA+ID4gS04pOyA+PiAgIH0tICBN aW5TaXplICI9IiBNSU46TnVtYmVyICIsIg0KPiA+IDw8ICsgIE1pblNpemUgIj0iDQo+ID4gPiBN SU46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gPiBWYXJBcnJh eVNpemUgPSBfR0VUX0NVUlJRRVNUX0FSUkFZX1NJWkUoKTsgU3RyaW5nTWluU2l6ZSA9IA0KPiA+ ID4gX1NUT1U4KE1JTi0+Z2V0VGV4dCgpLCBNSU4tPmdldExpbmUoKSk7IGlmIA0KPiA+ID4gKF9T VE9VNjQoTUlOLT5nZXRUZXh0KCksDQo+ID4gPiBNSU4tPmdldExpbmUoKSkgPiBTdHJpbmdNaW5T aXplKSB7QEAgLTMxNDEsNw0KPiA+ID4gKzMxNTgsNyBAQCB2ZnJTdGF0ZW1lbnRTdHJpbmcgOg0K PiA+ID4NCj4gIH0NCj4gPiA+IFNPYmouU2V0TWluU2l6ZQ0KPiA+IChTdHJpbmdNaW5TaXplKTsN Cj4gPiAgICAgICAgPj4tICBNYXhTaXplDQo+ID4gPiAiPSIgTUFYOk51bWJlciAiLCIgICAgICAg ICAgICAgICAgICAgICAgICAgICA8PCArICBNYXhTaXplICI9Ig0KPiA+IE1BWDpOdW1iZXIgIiwi DQo+ID4gPiA8PA0KPiA+IFN0cmluZ01heFNpemUgPSBfU1RPVTgoTUFYLT5nZXRUZXh0KCksDQo+ ID4gPiBNQVgtPmdldExpbmUoKSk7DQo+ID4gaWYgKF9TVE9VNjQoTUFYLQ0KPiA+ID4gPmdldFRl eHQoKSwgTUFYLT5nZXRMaW5lKCkpID4gU3RyaW5nTWF4U2l6ZSkNCj4gPiA+DQo+ID4gew0KPiA+ IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBNQVgtPmdldExp bmUoKSwgIlN0cmluZyBNYXhTaXplDQo+ID4gdGFrZXMNCj4gPiA+IG9ubHkgb25lIGJ5dGUsIHdo aWNoIGNhbid0IGJlIGxhcmdlciB0aGFuIDB4RkYuIik7QEAgLTMxODUsNyANCj4gPiA+ICszMjAy LDcgQEAgdmZyU3RhdGVtZW50UGFzc3dvcmQgOg0KPiA+ID4gICAgeyAgICAgS2V5ICI9IiBLTjpO dW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBBc3NpZ25RdWVz dGlvbktleSAoUE9iaiwNCj4gPiA+IEtOKTsgPj4gICB9LSAgTWluU2l6ZSAiPSIgTUlOOk51bWJl ciAiLCINCj4gPiA8PCArICBNaW5TaXplICI9Ig0KPiA+ID4gTUlOOk51bWJlciAiLCIgICAgICAg ICAgICAgICAgICAgICAgICAgICA8PA0KPiA+ID4gVmFyQXJyYXlTaXplID0gX0dFVF9DVVJSUUVT VF9BUlJBWV9TSVpFKCk7IFBhc3N3b3JkTWluU2l6ZSA9IA0KPiA+ID4gX1NUT1UxNihNSU4tPmdl dFRleHQoKSwgTUlOLT5nZXRMaW5lKCkpOyBpZiANCj4gPiA+IChfU1RPVTY0KE1JTi0+Z2V0VGV4 dCgpLA0KPiA+ID4gTUlOLT5nZXRMaW5lKCkpID4gUGFzc3dvcmRNaW5TaXplKSB7QEAgLQ0KPiA+ ID4gMzE5NSw3ICszMjEyLDcgQEAgdmZyU3RhdGVtZW50UGFzc3dvcmQgOg0KPiA+ID4NCj4gIH0N Cj4gPiA+IFBPYmouU2V0TWluU2l6ZQ0KPiA+IChQYXNzd29yZE1pblNpemUpOw0KPiA+ICAgICAg ICAgICA+Pi0NCj4gPiA+IE1heFNpemUgIj0iIE1BWDpOdW1iZXIgIiwiICAgICAgICAgICAgICAg ICAgICAgICAgICAgPDwgKw0KPiA+IE1heFNpemUgIj0iIE1BWDpOdW1iZXINCj4gPiA+ICIsIiAg ICAgICAgICAgICAgICAgICAgICAgICAgIDw8DQo+ID4gUGFzc3dvcmRNYXhTaXplID0NCj4gPiA+ IF9TVE9VMTYoTUFYLT5nZXRUZXh0KCksIE1BWC0+Z2V0TGluZSgpKTsNCj4gPiBpZg0KPiA+ID4g KF9TVE9VNjQoTUFYLT5nZXRUZXh0KCksIE1BWC0+Z2V0TGluZSgpKSA+IFBhc3N3b3JkTWF4U2l6 ZSkNCj4gPiA+DQo+ID4gew0KPiA+IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJOX0lOVkFMSURf UEFSQU1FVEVSLCBNQVgtPmdldExpbmUoKSwgIlBhc3N3b3JkDQo+IE1heFNpemUNCj4gPiB0YWtl cw0KPiA+ID4gb25seSB0d28gYnl0ZSwgd2hpY2ggY2FuJ3QgYmUgbGFyZ2VyIHRoYW4gMHhGRkZG LiIpO0BAIC0zMjMwLDEyDQo+ID4gPiArMzI0NywxMiBAQCB2ZnJTdGF0ZW1lbnRPcmRlcmVkTGlz dCA6DQo+ID4gPiAgICA+PiAgIEw6T3JkZXJlZExpc3QNCj4gPiA8PCBPTE9iai5TZXRMaW5lTm8o TC0+Z2V0TGluZSgpKTsNCj4gPiA+IGdJc09yZGVyZWRMaXN0ID0gVFJVRTs+PiAgIHZmclF1ZXN0 aW9uSGVhZGVyW09MT2JqXSAiLCItDQo+ID4gPiA8PCArDQo+IDw8DQo+ID4gPiBWYXJBcnJheVNp emUgPSBfR0VUX0NVUlJRRVNUX0FSUkFZX1NJWkUoKTsgT0xPYmouU2V0TWF4Q29udGFpbmVycw0K PiA+ID4gKChVSU5UOCkgKFZhckFycmF5U2l6ZSA+IDB4RkYgPyAweEZGIDoNCj4gPiA+DQo+ID4g VmFyQXJyYXlTaXplKSk7DQo+ID4gICAgICAgPj4gICB7LSAgICBNYXhDb250YWluZXJzICI9Ig0K PiA+ID4gTTpOdW1iZXIgIiwiICAgICAgICAgICAgICAgICAgICAgPDwgKyAgICBNYXhDb250YWlu ZXJzICI9Ig0KPiA+IE06TnVtYmVyICIsIg0KPiA+ID4gPDwNCj4gPiBpZiAoX1NUT1U2NChNLT5n ZXRUZXh0KCksIE0tPmdldExpbmUoKSkgPg0KPiA+ID4gX1NUT1U4KE0tPmdldFRleHQoKSwgTS0+ Z2V0TGluZSgpKSkNCj4gPiA+DQo+ID4gew0KPiA+IF9QQ0FUQ0gNCj4gPiA+IChWRlJfUkVUVVJO X0lOVkFMSURfUEFSQU1FVEVSLCBNLT5nZXRMaW5lKCksICJPcmRlcmVkTGlzdCANCj4gPiA+IE1h eENvbnRhaW5lcnMgdGFrZXMgb25seSBvbmUgYnl0ZSwgd2hpY2ggY2FuJ3QgYmUgbGFyZ2VyIHRo YW4NCj4gPiA+DQo+ID4gMHhGRi4iKTsNCj4gPiAgICB9IGVsc2UgaWYgKFZhckFycmF5U2l6ZSAh PSAwICYmDQo+ID4gPiBfU1RPVTgoTS0+Z2V0VGV4dCgpLCBNLT5nZXRMaW5lKCkpID4gVmFyQXJy YXlTaXplKSB7QEAgLTMzMjgsMTkNCj4gPiA+ICszMzQ1LDE5IEBAIG1pbk1heFRpbWVTdGVwRGVm YXVsdFtFRklfSElJX1RJTUUgJiBULCBVSU5UOA0KPiA+IEtleVZhbHVlXSA6DQo+ID4gPiAgICB7 ICAgICAiZGVmYXVsdCIgIj0iIE46TnVtYmVyICIsIiAgICAgICAgICAgICAgICAgICAgICAgICA8 PA0KPiA+ID4gc3dpdGNoIChLZXlWYWx1ZSkgey0NCj4gPiBjYXNlIDA6IC0NCj4gPiA+IFQuSG91 ciAgID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsgKw0KPiA+ID4gY2FzZSAw OisNCj4gPiBULkhvdXIgICA9IF9TVE9VOChOLT5nZXRUZXh0KCksIE4tDQo+ID4gPiA+Z2V0TGlu ZSgpKTsNCj4gPiBpZiAoVC5Ib3VyID4gMjMpDQo+ID4gPg0KPiA+IHsNCj4gPiAgIF9QQ0FUQ0gN Cj4gPiA+IChWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBOLT5nZXRMaW5lKCksICJIb3Vy IGRlZmF1bHQgdmFsdWUNCj4gPiBtdXN0DQo+ID4gPiBiZSBiZXR3ZWVuIDAgYW5kDQo+ID4gMjMu Iik7DQo+ID4gICAgIH0NCj4gPiA+IGJyZWFrOy0NCj4gPiBjYXNlIDE6IC0NCj4gPiA+IFQuTWlu dXRlID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0+Z2V0TGluZSgpKTsgKyBjYXNlIDE6Kw0KPiA+ IFQuTWludXRlID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0NCj4gPiA+ID5nZXRMaW5lKCkpOw0K PiA+IGlmIChULk1pbnV0ZSA+IDU5KQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENBVENIDQo+ID4g PiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiTWludXRlIGRl ZmF1bHQgdmFsdWUgDQo+ID4gPiBtdXN0IGJlIGJldHdlZW4gMCBhbmQNCj4gPiA1OS4iKTsNCj4g PiAgICAgfQ0KPiA+ID4gYnJlYWs7LQ0KPiA+IGNhc2UgMjogKw0KPiA+ID4gY2FzZSAyOg0KPiA+ IFQuU2Vjb25kID0gX1NUT1U4KE4tPmdldFRleHQoKSwgTi0NCj4gPiA+ID5nZXRMaW5lKCkpOw0K PiA+IGlmIChULlNlY29uZCA+IDU5KQ0KPiA+ID4NCj4gPiB7DQo+ID4gICBfUENBVENIDQo+ID4g PiAoVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTi0+Z2V0TGluZSgpLCAiU2Vjb25kIGRl ZmF1bHQgdmFsdWUgDQo+ID4gPiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNTkuIik7QEAgLTM0MTks MTEgKzM0MzYsMTEgQEAgDQo+ID4gPiB2ZnJTdGF0ZW1lbnRTdGF0TGlzdE9sZCA6DQo+ID4gPiAg ICA7ICB2ZnJTdGF0ZW1lbnREaXNhYmxlSWZTdGF0IDotICA8PCAtICAgIENJZnJEaXNhYmxlSWYg RElPYmo7ICsgIDw8Kw0KPiA+ID4gQ0lmckRpc2FibGVJZiBESU9iajsgICA+PiAgIEw6RGlzYWJs ZUlmDQo+ID4gPDwNCj4gPiA+IERJT2JqLlNldExpbmVObyhMLT5nZXRMaW5lKCkpOyA+Pi0gIHZm clN0YXRlbWVudEV4cHJlc3Npb25bMF0gIjsiICsNCj4gPiA+IHZmclN0YXRlbWVudEV4cHJlc3Np b25bMF0gIjsiICAgKCB2ZnJTdGF0ZW1lbnRTdGF0TGlzdCApKiAgIEU6RW5kSWYNCj4gPiA+IDw8 IENSVF9FTkRfT1AgKEUpOyA+PiAgICI7IkBAIC0zNTQ4LDggKzM1NjUsOCBAQA0KPiA+ID4gdmZy U3RhdGVtZW50V2FybmluZ0lmIDoNCj4gPiA+ICAgIDsgIHZmclN0YXRlbWVudERpc2FibGVJZlF1 ZXN0IDotICA8PCAtICAgIENJZnJEaXNhYmxlSWYgRElPYmo7ICsNCj4gPiA8PCsNCj4gPiA+IENJ ZnJEaXNhYmxlSWYgRElPYmo7ICAgPj4gICBMOkRpc2FibGVJZg0KPiA+IDw8DQo+ID4gPiBESU9i ai5TZXRMaW5lTm8oTC0+Z2V0TGluZSgpKTsgPj4gICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uWzBd ICI7IkBAIC0NCj4gPiA+IDM2MTYsMTUgKzM2MzMsMTUgQEAgdmZyU3RhdGVtZW50T25lT2ZPcHRp b24gOg0KPiA+ID4gICAgICAgVUlOVDMyICAgICAgICAgICAgICpUeXBlMzIgICAgICAgPSAoVUlO VDMyICopIFZhbHVlTGlzdDsNCj4gPiBVSU5UNjQNCj4gPiA+ICpUeXBlNjQgICAgICAgPSAoVUlO VDY0ICopIFZhbHVlTGlzdDsgICA+Pi0gIEw6T3B0aW9uDQo+ID4gPDwNCj4gPiA+ICsgIEw6T3B0 aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiBp Zg0KPiA+ID4gKF9HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSA9PSBFRklfSUZSX1RZUEVfT1RIRVIp DQo+ID4gPg0KPiA+IHsNCj4gPiBfUENBVENIIChWRlJfUkVUVVJOX0ZBVEFMX0VSUk9SLCBMLQ0K PiA+ID4gPmdldExpbmUoKSwgIkdldCBkYXRhIHR5cGUNCj4gPiA+DQo+ID4gZXJyb3IuIik7DQo+ ID4gICAgfQ0KPiAgPg0KPiA+ID4tDQo+ID4gPiBUZXh0ICAiPSIgIlNUUklOR19UT0tFTiIgIlwo IiBTOk51bWJlciAiXCkiICIsIiAgICAgICsgIFRleHQgICI9Ig0KPiA+ID4gIlNUUklOR19UT0tF TiIgIlwoIiBTOk51bWJlciAiXCkiICIsIiAgIFZhbHVlICI9Ig0KPiA+ID4gdmZyQ29uc3RhbnRW YWx1ZUZpZWxkW19HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwgKlZhbCwgQXJyYXlUeXBlXSANCj4g PiA+IiwiLSAgPDwgKw0KPiA8PA0KPiA+IGlmDQo+ID4gPiAoZ0N1cnJlbnRNaW5NYXhEYXRhICE9 IE5VTEwpDQo+ID4gew0KPiA+IC8vc2V0DQo+ID4gPiBtaW4vbWF4IHZhbHVlIGZvciBvbmVvZiBv cGNvZGUNCj4gPiBVSU5UNjQNCj4gPiA+IFN0ZXAgPQ0KPiBnQ3VycmVudE1pbk1heERhdGEtPkdl dFN0ZXBEYXRhKF9HRVRfQ1VSUlFFU1RfREFUQVRZUEUoKSwNCj4gPiA+IF9HRVRfQ1VSUlFFU1Rf VkFSVElORk8oKS5tSXNCaXRWYXIpO0BAIC0zNjk2LDcgKzM3MTMsNyBAQCANCj4gPiA+IHZmclN0 YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gPiA+DQo+ID4gU2l6ZSArPSBPRkZTRVRfT0YNCj4gPiA+ IChFRklfSUZSX09ORV9PRl9PUFRJT04sIFZhbHVlKTsNCj4gPiBPT09PYmogPQ0KPiA+ID4gbmV3 IENJZnJPbmVPZk9wdGlvbigoVUlOVDgpU2l6ZSk7DQo+ID4gT09PT2JqLQ0KPiA+ID4gPlNldExp bmVObyhMLT5nZXRMaW5lKCkpOy0NCj4gPiBPT09PYmotDQo+ID4gPiA+U2V0T3B0aW9uIChfU1RP U0lEKFMtPmdldFRleHQoKSwgUy0+Z2V0TGluZSgpKSk7ICsNCj4gPiA+IE9PT09iai0+U2V0T3B0 aW9uIChfU1RPU0lEKFMtPmdldFRleHQoKSwgUy0+Z2V0TGluZSgpKSk7DQo+ID4gPiBpZiAoQXJy YXlUeXBlKQ0KPiA+IHsNCj4gPiBPT09PYmotPlNldFR5cGUNCj4gPiA+DQo+ID4gKEVGSV9JRlJf VFlQRV9CVUZGRVIpOw0KPiA+ICAgICAgICAgICAgICAgICAgfSBlbHNlIHtAQCAtMzcwNiw3DQo+ ID4gPiArMzcyMyw3IEBAIHZmclN0YXRlbWVudE9uZU9mT3B0aW9uIDoNCj4gPiA+DQo+ID4gT09P T2JqLT5TZXRUeXBlDQo+ID4gPg0KPiA+IChfR0VUX0NVUlJRRVNUX0RBVEFUWVBFKCkpOw0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0tDQo+ID4gT09PT2JqLT5TZXRWYWx1ZQ0KPiA+ID4gKCpWYWwpOyAr DQo+ID4gT09PT2JqLT5TZXRWYWx1ZQ0KPiA+ID4NCj4gPg0KPiAoKlZhbCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+DQo+ID4NCj4gPiBG OkZMQUdTICI9Ig0KPiA+ID4gdmZyT25lT2ZPcHRpb25GbGFnc1sqT09PT2JqLCBGLT5nZXRMaW5l KCldIDw8QEAgLTM3OTAsNyArMzgwNywxMg0KPiBAQA0KPiA+ID4gb25lb2ZvcHRpb25GbGFnc0Zp ZWxkIFtVSU5UOCAmIEhGbGFncywgVUlOVDggJiBMRmxhZ3NdIDoNCj4gPiA+ICAgIHwgUmVzdFN0 eWxlRmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiAkSEZs YWdzIHw9IDB4MjA7ID4+ICAgfA0KPiA+ID4gUmVjb25uZWN0UmVxdWlyZWRGbGFnICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPDwgJEhGbGFncw0KPiB8PQ0KPiA+IDB4NDA7ID4+ICAgfA0K PiA+ID4gTWFudWZhY3R1cmluZ0ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PDwgJExGbGFncw0KPiB8PQ0KPiA+IDB4MjA7ID4+LSAgfCBEZWZhdWx0RmxhZw0KPiA+ID4gPDwg JExGbGFncyB8PSAweDEwOyA+PisgIHwgRDpEZWZhdWx0RmxhZw0KPiA+IDw8Kw0KPiA+ID4gJExG bGFncyB8PSAweDEwOysNCj4gPiBpZiAobUlzQ2F0Y2hEZWZhdWx0RW5hYmxlKQ0KPiA+ID4geysN Cj4gPiA+IERlZmF1bHRWYWx1ZUVycm9yKFZGUl9SRVRVUk5fVU5TVVBQT1JURUQsIEQtDQo+ID4g PiA+Z2V0TGluZSgpKTsrDQo+ID4gICAgICAgICAgIH0rDQo+ID4gPiAgPj4gICB8IEE6TlZBY2Nl c3NGbGFnDQo+IDw8DQo+ID4gPiBnQ1ZmckVycm9ySGFuZGxlLkhhbmRsZVdhcm5pbmcNCj4gPiA+ DQo+ID4gKA0KPiA+IFZGUl9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUksNCj4gPiA+IF9PUENP REUsQEAgLTM5NjMsNyArMzk4NSw3IEBAIHZmclN0YXRlbWVudEV4cHJlc3Npb24gW1VJTlQzMiAN Cj4gPiA+IFJvb3RMZXZlbCwgVUlOVDMyIEV4cE9wQ291bnQgPSAwXSA6DQo+ID4gPg0KPiA+ICAg IH0NCj4gPiAgICB9DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LQ0KPiA+ICsNCj4gPiA+IGlmICgkUm9vdExldmVsID09IDApDQo+ID4gew0KPiA+ IF9DTEVBUl9TQVZFRF9PUEhEUg0KPiA+ID4gKCk7DQo+ID4gbUNJZnJPcEhkckluZGV4IC0tO0BA IC00NDA1LDEwDQo+ID4gPiArNDQyNywxMCBAQCBpZGVxdmFsbGlzdEV4cFtVSU5UMzIgJiBSb290 TGV2ZWwsIFVJTlQzMiAmDQo+IEV4cE9wQ291bnRdIDoNCj4gPiA+DQo+ID4gZm9yIChJbmRleCA9 IDA7IEluZGV4IDwgTGlzdExlbjsgSW5kZXgrKykNCj4gPiA+DQo+ID4gew0KPiA+ICAgRUlMT2Jq LlNldFZhbHVlTGlzdCAoSW5kZXgsDQo+ID4gPg0KPiA+IFZhbHVlTGlzdFtJbmRleF0pOw0KPiA+ ICAgICAgICAgICAgICB9LQ0KPiA+ID4gKw0KPiA+ID4gKyBFSUxPYmouVXBkYXRlSWZyQnVmZmVy KCk7LQ0KPiA+ID4gX1NBVkVfT1BIRFJfQ09ORCAoRUlMT2JqLCAoJEV4cE9wQ291bnQgPT0gMCks IEwtPmdldExpbmUoKSk7DQo+ID4gPiAtDQo+ID4gKw0KPiA+ID4gX1NBVkVfT1BIRFJfQ09ORCAo RUlMT2JqLCAoJEV4cE9wQ291bnQgPT0gMCksIEwtPmdldExpbmUoKSk7KyBpZiANCj4gPiA+IChR SWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQpDQo+ID4gPg0KPiA+IHsNCj4gPiAgIEVJTE9i ai5TZXRRdWVzdGlvbklkIChRSWQsIFZhcklkU3RyLA0KPiA+ID4NCj4gPiBMaW5lTm8pOw0KPiA+ ICAgICAgIH1AQCAtNDQ1OCw5ICs0NDgwLDkgQEANCj4gPiA+IHN0cmluZ3JlZjFFeHBbVUlOVDMy ICYgUm9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XSA6DQo+ID4gPiAgICA+PiAgIEw6U3Ry aW5nUmVmICAgIlwoIi0gICAgICAoICsNCj4gPiAoICAgICAgICAgIlNUUklOR19UT0tFTiItICAg ICAgICAiXCgiICsgICAgICAgICJcKCINCj4gPiA+IFM6TnVtYmVyIDw8IFJlZlN0cmluZ0lkID0g X1NUT1NJRChTLT5nZXRUZXh0KCksIFMtPmdldExpbmUoKSk7ID4+DQo+ID4gIlwpIg0KPiA+ID4g fCBJOk51bWJlciA8PCBSZWZTdHJpbmdJZCA9IF9TVE9TSUQoSS0+Z2V0VGV4dCgpLCBJLT5nZXRM aW5lKCkpOw0KPiA+ID4gfCA+PkBADQo+ID4gPiB8IC0NCj4gPiA+IDQ0OTksMTAgKzQ1MjEsMTAg QEAgZ2V0RXhwW1VJTlQzMiAmIFJvb3RMZXZlbCwgVUlOVDMyICYNCj4gPiBFeHBPcENvdW50XSA6 DQo+ID4gPiAgICAgICBJbmZvLm1WYXJTdG9yZUlkID0gMDsgICA+PiAgIEw6R2V0LSAgIlwoIiAr ICAiXCgiDQo+ID4gdmZyU3RvcmFnZVZhcklkW0luZm8sDQo+ID4gPiBWYXJJZFN0ciwgRkFMU0Vd ICAgICAgIHsiXHwiIEZMQUdTICI9IiBudW1lcmljVmFyU3RvcmVUeXBlDQo+IFtWYXJUeXBlXSB9 LQ0KPiA+ICJcKSINCj4gPiA+IDw8ICsgICJcKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPDwNCj4gPiA+DQo+ID4NCj4geyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpDQo+ID4gZiAoSW5m by5tVmFyU3RvcmVJZCA9PSAwKQ0KPiA+ID4NCj4gPiB7DQo+ID4gICAvLyBzdXBwb3J0IERhdGUv VGltZSBxdWVzdGlvbkBAIC0NCj4gPiA+IDQ1NDksOSArNDU3MSw5IEBAIGdldEV4cFtVSU5UMzIg JiBSb290TGV2ZWwsIFVJTlQzMiAmDQo+IEV4cE9wQ291bnRdIDoNCj4gPiA+DQo+ID4gPiBfUENB VENIKFZGUl9SRVRVUk5fVU5TVVBQT1JURUQsIEwtDQo+ID4gPiA+Z2V0TGluZSgpLCAiR2V0L1Nl dCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBkYXRhDQo+ID4gPg0KPiA+IGFycmF5Iik7DQo+ID4gICAg ICAgIH0NCj4gPiAgICAgICAgfQ0KPiA+ID4gLQ0KPiA+IENJZnJHZXQgR09iaihMLT5nZXRMaW5l KCkpOyAtDQo+ID4gPiBfU0FWRV9PUEhEUl9DT05EIChHT2JqLCAoJEV4cE9wQ291bnQgPT0gMCks IEwtPmdldExpbmUoKSk7IC0gDQo+ID4gPiBHT2JqLlNldFZhckluZm8gKCZJbmZvKTsgKw0KPiA+ IENJZnJHZXQgR09iaihMLQ0KPiA+ID4gPmdldExpbmUoKSk7Kw0KPiA+IF9TQVZFX09QSERSX0NP TkQgKEdPYmosDQo+ID4gPiAoJEV4cE9wQ291bnQgPT0gMCksIEwtPmdldExpbmUoKSk7KyBHT2Jq LlNldFZhckluZm8gKCZJbmZvKTsNCj4gPiBkZWxldGVbXSBWYXJJZFN0cjsNCj4gPiA+DQo+ID4g JEV4cE9wQ291bnQrKzsNCj4gPiAgICAgICAgICAgIH1AQCAtNDYwOCw3ICs0NjMwLDcgQEANCj4g PiA+IHF1ZXN0aW9uMjNyZWZFeHBbVUlOVDMyICYgUm9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENv dW50XSA6DQo+ID4gPiAgICAgICAgeyAgICAgICAgIFV1aWQgIj0iIGd1aWREZWZpbml0aW9uW0d1 aWRdICIsIg0KPiA+IDw8IFR5cGUgPSAweDM7ID4+ICAgICAgIH0tDQo+ID4gPiB2ZnJTdGF0ZW1l bnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gKw0KPiA+ID4gdmZy U3RhdGVtZW50RXhwcmVzc2lvblN1YlskUm9vdExldmVsICsgMSwgJEV4cE9wQ291bnRdICAgIlwp Ig0KPiA+ID4gPDwNCj4gPiBzd2l0Y2ggKFR5cGUpIHtAQCAtNDY3NSw5ICs0Njk3LDkgQEANCj4g PiA+IHNldEV4cFtVSU5UMzIgJiBSb290TGV2ZWwsIFVJTlQzMiAmIEV4cE9wQ291bnRdIDoNCj4g PiA+ICAgICJcKCIgICAgICB2ZnJTdG9yYWdlVmFySWRbSW5mbywgVmFySWRTdHIsIEZBTFNFXSAg ICAgIHsiXHwiIEZMQUcNCj4gIj0iDQo+ID4gPiBudW1lcmljVmFyU3RvcmVUeXBlIFtWYXJUeXBl XSB9LSAgICAgIiwiDQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwg KyAxLCAkRXhwT3BDb3VudF0gKyAgICAgIiwiDQo+ID4gPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gICAiXCkiLQ0KPiA+ID4gPDwgKw0KPiA8 PA0KPiA+ID4NCj4gPg0KPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGkNCj4gPiBmIChJbmZvLm1WYXJTdG9yZUlkID09IDApDQo+ ID4gPg0KPiA+IHsNCj4gPiAgIC8vIHN1cHBvcnQgRGF0ZS9UaW1lIHF1ZXN0aW9uQEAgLQ0KPiA+ ID4gNDcyNCw4ICs0NzQ2LDggQEAgc2V0RXhwW1VJTlQzMiAmIFJvb3RMZXZlbCwgVUlOVDMyICYN Cj4gRXhwT3BDb3VudF0gOg0KPiA+ID4NCj4gPiA+IF9QQ0FUQ0goVkZSX1JFVFVSTl9VTlNVUFBP UlRFRCwgTC0NCj4gPiA+ID5nZXRMaW5lKCksICJHZXQvU2V0IG9wY29kZSBkb24ndCBzdXBwb3J0 IGRhdGENCj4gPiA+DQo+ID4gYXJyYXkiKTsNCj4gPiAgICAgICAgfQ0KPiA+ICAgICAgICB9DQo+ ID4gPiAtDQo+ID4gQ0lmclNldCBUU09iaihMLT5nZXRMaW5lKCkpOyAtDQo+ID4gPiBUU09iai5T ZXRWYXJJbmZvICgmSW5mbyk7ICsNCj4gPiBDSWZyU2V0IFRTT2JqKEwtDQo+ID4gPiA+Z2V0TGlu ZSgpKTsrDQo+ID4gVFNPYmouU2V0VmFySW5mbyAoJkluZm8pOw0KPiA+ID4gZGVsZXRlW10gVmFy SWRTdHI7DQo+ID4gPg0KPiA+ICRFeHBPcENvdW50Kys7DQo+ID4gICAgICAgICAgICB9QEAgLTQ4 MDgsOSArNDgzMCw5IEBADQo+ID4gPiBzcGFuRXhwW1VJTlQzMiAmIFJvb3RMZXZlbCwgVUlOVDMy ICYgRXhwT3BDb3VudF0gOg0KPiA+ID4gICAgOyAgdmZyRXhwcmVzc2lvbk1hcCBbVUlOVDMyICYg Um9vdExldmVsLCBVSU5UMzIgJiBFeHBPcENvdW50XTotDQo+ID4gPiBMOk1hcA0KPiA+ID4gLSAg IlwoIiAtICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BD b3VudF0gICsNCj4gPiBMOk1hcCsNCj4gPiA+ICJcKCIrICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViWyRSb290TGV2ZWwgKyAxLCAkRXhwT3BDb3VudF0gICAiOiINCj4gPiA+IDw8IHsgQ0lmck1h cCBNT2JqKEwtPmdldExpbmUoKSk7IH0gPj4NCj4gPiAoICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNz aW9uWzBdQEAgLQ0KPiA+ID4gNDgzNyw2ICs0ODU5LDcgQEAgc3BhbkZsYWdzIFtVSU5UOCAmIEZs YWdzXSA6DQo+ID4gPiAgY2xhc3MgRWZpVmZyUGFyc2VyIHsgPDwgcHJpdmF0ZTorICBCT09MRUFO DQo+ID4gbUlzQ2F0Y2hEZWZhdWx0RW5hYmxlOw0KPiA+ID4gVUlOVDggICAgICAgICAgICAgICBt UGFyc2VyU3RhdHVzOyAgIEJPT0xFQU4NCj4gPiBtQ29uc3RhbnRPbmx5SW5FeHByZXNzaW9uOw0K PiA+ID4gQEAgLTQ4ODAsNiArNDkwMyw3IEBAIHB1YmxpYzoNCj4gPiA+ICAgIFZPSUQgICAgICAg ICAgICAgICAgX1BDQVRDSCAoSU4gRUZJX1ZGUl9SRVRVUk5fQ09ERSwgSU4NCj4gPiBBTlRMUlRv a2VuUHRyKTsNCj4gPiA+IFZPSUQgICAgICAgICAgICAgICAgX1BDQVRDSCAoSU4gRUZJX1ZGUl9S RVRVUk5fQ09ERSwgSU4NCj4gVUlOVDMyKTsNCj4gPiBWT0lEDQo+ID4gPiBfUENBVENIIChJTiBF RklfVkZSX1JFVFVSTl9DT0RFLCBJTiBVSU5UMzIsIElOIENPTlNUIENIQVI4ICopOysNCj4gPiBW T0lEDQo+ID4gPiBEZWZhdWx0VmFsdWVFcnJvciAoSU4gRUZJX1ZGUl9SRVRVUk5fQ09ERSwgSU4g VUlOVDMyKTsgICAgVk9JRA0KPiA+ID4gc3luICAgICAoQU5UTFJBYnN0cmFjdFRva2VuICAqLCBB TlRMUkNoYXIgKiwgU2V0V29yZFR5cGUgKiwNCj4gPiA+IEFOVExSVG9rZW5UeXBlLCBJTlQzMik7 IEBAIC00OTA5LDYgKzQ5MzMsNyBAQCBwdWJsaWM6DQo+ID4gPiAgICBWT0lEICAgICAgICAgICAg ICAgIElkRXFJZERvU3BlY2lhbCAgICAgICAoSU4gVUlOVDMyICYsIElODQo+ID4gVUlOVDMyLCBJ Tg0KPiA+ID4gRUZJX1FVRVNUSU9OX0lELCBJTiBDSEFSOCAqLCBJTiBVSU5UMzIsIElOIEVGSV9R VUVTVElPTl9JRCwgSU4NCj4gPiBDSEFSOCAqLA0KPiA+ID4gSU4gVUlOVDMyLCBJTiBFRklfQ09N UEFSRV9UWVBFKTsgICBWT0lEDQo+ID4gSWRFcUxpc3REb1NwZWNpYWwgICAgIChJTg0KPiA+ID4g VUlOVDMyICYsIElOIFVJTlQzMiwgSU4gRUZJX1FVRVNUSU9OX0lELCBJTiBDSEFSOCAqLCBJTiBV SU5UMzIsIElODQo+ID4gPiBVSU5UMTYsIElOIFVJTlQxNiAqKTsgICBWT0lEICAgICAgICAgICAg ICAgIFNldE92ZXJyaWRlQ2xhc3NHdWlkDQo+ID4gKElOIEVGSV9HVUlEICopOysNCj4gPiA+IFZP SUQgICAgICAgICAgICAgICAgU2V0SXNDYXRjaERlZmF1bHRFbmFibGUgKEJPT0xFQU4NCj4gPiBJ c0NhdGNoRGVmYXVsdEVuYWJsZSk7ID4+IH0NCj4gPiA+IEBAIC01MDg2LDYgKzUxMTEsMTcgQEAg RWZpVmZyUGFyc2VyOjpfUENBVENIICgNCj4gPiA+ICAgIG1QYXJzZXJTdGF0dXMgPSBtUGFyc2Vy U3RhdHVzICsgZ0NWZnJFcnJvckhhbmRsZS5IYW5kbGVFcnJvcg0KPiA+ID4gKFJldHVybkNvZGUs IExpbmVOdW0sIChDSEFSOCAqKSBFcnJvck1zZyk7IH0NCj4gPiA+ICtWT0lEK0VmaVZmclBhcnNl cjo6RGVmYXVsdFZhbHVlRXJyb3IgKCsgIElOIEVGSV9WRlJfUkVUVVJOX0NPREUNCj4gPiA+IFJl dHVybkNvZGUsKyAgSU4gVUlOVDMyICAgICAgICAgICAgICBMaW5lTnVtKyAgKSt7KyAgQ0hBUjgN Cj4gPiBFcnJvck1zZ1sxMDBdOysNCj4gPiA+IHNwcmludGYoRXJyb3JNc2csICJwbGVhc2UgcmVt b3ZlIHRoZSBkZWZhdWx0IHZhbHVlIC8gZGVmYXVsdHN0b3JlIGluDQo+ID4gPiBsaW5lICVkIiwg TGluZU51bSk7KyAgbVBhcnNlclN0YXR1cyA9IG1QYXJzZXJTdGF0dXMgKw0KPiA+ID4gZ0NWZnJF cnJvckhhbmRsZS5IYW5kbGVFcnJvciAoUmV0dXJuQ29kZSwgTGluZU51bSwgRXJyb3JNc2cpOyt9 Kw0KPiA+ID4gVk9JRA0KPiA+IEVmaVZmclBhcnNlcjo6c3luDQo+ID4gPiAoICAgQU5UTFJBYnN0 cmFjdFRva2VuICAqVG9rLEBAIC01NjgyLDEyICs1NzE4LDE4IEBADQo+ID4gPiBFZmlWZnJQYXJz ZXI6OklkRXFMaXN0RG9TcGVjaWFsICgNCj4gPiA+ICAgIH0gfSAtVk9JRCArVk9JRCBFZmlWZnJQ YXJzZXI6OlNldE92ZXJyaWRlQ2xhc3NHdWlkIChJTiBFRklfR1VJRA0KPiA+ID4gKk92ZXJyaWRl Q2xhc3NHdWlkKSB7ICAgbU92ZXJyaWRlQ2xhc3NHdWlkID0gT3ZlcnJpZGVDbGFzc0d1aWQ7IH0N Cj4gPiA+ICtWT0lEK0VmaVZmclBhcnNlcjo6U2V0SXNDYXRjaERlZmF1bHRFbmFibGUgKEJPT0xF QU4NCj4gPiA+IElzQ2F0Y2hEZWZhdWx0RW5hYmxlKSt7KyAgbUlzQ2F0Y2hEZWZhdWx0RW5hYmxl ID0NCj4gPiBJc0NhdGNoRGVmYXVsdEVuYWJsZTsrfSsNCj4gPiA+IFZPSUQgRWZpVmZyUGFyc2Vy OjpDaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZSAoICAgSU4gRUZJX0RFRkFVTFRfSUQNCj4gPiA+ IERlZmF1bHRJZCwtLQ0KPiA+ID4gMi4yNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+IA0KPiANCj4gDQoNCg0KDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5p byBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmll dy9SZXBseSBPbmxpbmUgKCMxMTQzOTYpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwv bWVzc2FnZS8xMTQzOTYKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDM5 NTI0NjgvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5z dWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBv cGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==