From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Herrenschmidt Subject: Re: [PATCH] drm/ast: Support AST2500 Date: Thu, 16 Feb 2017 16:50:54 +1100 Message-ID: <1487224254.23576.49.camel@au1.ibm.com> References: <1484103473-22931-1-git-send-email-yc_chen@aspeedtech.com> Reply-To: benh@au1.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by gabe.freedesktop.org (Postfix) with ESMTPS id EAB7289F2D for ; Thu, 16 Feb 2017 05:51:59 +0000 (UTC) Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v1G5nGpb121990 for ; Thu, 16 Feb 2017 00:51:59 -0500 Received: from e23smtp01.au.ibm.com (e23smtp01.au.ibm.com [202.81.31.143]) by mx0b-001b2d01.pphosted.com with ESMTP id 28n65b89r4-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 16 Feb 2017 00:51:57 -0500 Received: from localhost by e23smtp01.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 16 Feb 2017 15:51:54 +1000 Received: from d23relay10.au.ibm.com (d23relay10.au.ibm.com [9.190.26.77]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 182462BB0055 for ; Thu, 16 Feb 2017 16:51:52 +1100 (EST) Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.234.96]) by d23relay10.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v1G5ph9m38994162 for ; Thu, 16 Feb 2017 16:51:51 +1100 Received: from d23av01.au.ibm.com (localhost [127.0.0.1]) by d23av01.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v1G5pJtk011480 for ; Thu, 16 Feb 2017 16:51:20 +1100 In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dave Airlie , "Y.C. Chen" Cc: Dave Airlie , dri-devel , Egbert Eich List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAyMDE3LTAyLTE2IGF0IDE0OjI0ICsxMDAwLCBEYXZlIEFpcmxpZSB3cm90ZToKPiBP biAxMSBKYW51YXJ5IDIwMTcgYXQgMTI6NTcsIFkuQy4gQ2hlbiA8eWNfY2hlbkBhc3BlZWR0ZWNo LmNvbT4KPiB3cm90ZToKPiA+IEZyb206ICJZLkMuIENoZW4iIDx5Y19jaGVuQGFzcGVlZHRlY2gu Y29tPgo+IAo+IFBsZWFzZSBydW4gY2hlY2twYXRjaCBvdmVyIHRoaXMgcGF0Y2gsIGl0J3MgZ290 IGEgbG90IG9mIGJhZAo+IHdoaXRlc3BhY2UgaXNzdWVzCj4gKDQgc3BhY2UgYW5kIDIgc3BhY2Ug aW5kZW50cywgaW5kZW50IHRoZSB0aW1pbmcgdGFibGVzICwgcmVtb3ZlIHN0YXJ0Cj4gb2YgbGlu ZSB3aGl0ZXNwYWNlLikuCgpJdCdzIGFsc28gbWlzZGV0ZWN0aW5nIFZSQU0gb24gbXkgMjUwMCBi YXNlZCBQT1dFUjkgYm94ZXMuIEknbGwgdGFrZQpvdmVyIHRoZSBwYXRjaCwgbWFrZSBpdCB3b3Jr IGFuZCBjbGVhbiBpdCB1cC4gQWxvbmcgd2l0aCBmaXhpbmcgdGhlClAyQSBidXNpbmVzcyBwcm9w ZXJseS4KCk5ldyBwYXRjaCB0b21vcnJvdyBob3BlZnVsbHkuCgpDaGVlcnMsCkJlbi4KCj4gCj4g RGF2ZS4KPiAKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogWS5DLiBDaGVuIDx5Y19jaGVuQGFzcGVl ZHRlY2guY29tPgo+ID4gLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5owqDC oMKgwqB8wqDCoMKgMiArCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uY8KgwqDC oHzCoMKgMjcgKystCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuY8KgwqDCoHzC oMKgMjUgKy0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jwqDCoMKgfCA1MTAK PiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4gwqBkcml2ZXJz L2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaCB8wqDCoDU3ICsrKystCj4gPiDCoDUgZmlsZXMgY2hh bmdlZCwgNTk2IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfZHJ2LmgKPiA+IGluZGV4IDkwODAxMWQuLjdlNDA2Y2UgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfZHJ2LmgKPiA+IEBAIC02NCw2ICs2NCw3IEBAIGVudW0gYXN0X2NoaXAgewo+ID4g wqDCoMKgwqDCoMKgwqDCoEFTVDIxNTAsCj4gPiDCoMKgwqDCoMKgwqDCoMKgQVNUMjMwMCwKPiA+ IMKgwqDCoMKgwqDCoMKgwqBBU1QyNDAwLAo+ID4gK8KgwqDCoMKgwqDCoMKgQVNUMjUwMCwKPiA+ IMKgwqDCoMKgwqDCoMKgwqBBU1QxMTgwLAo+ID4gwqB9Owo+ID4gCj4gPiBAQCAtODAsNiArODEs NyBAQCBlbnVtIGFzdF90eF9jaGlwIHsKPiA+IMKgI2RlZmluZSBBU1RfRFJBTV8xR3gzMsKgwqDC oDMKPiA+IMKgI2RlZmluZSBBU1RfRFJBTV8yR3gxNsKgwqDCoDYKPiA+IMKgI2RlZmluZSBBU1Rf RFJBTV80R3gxNsKgwqDCoDcKPiA+ICsjZGVmaW5lIEFTVF9EUkFNXzhHeDE2wqDCoMKgOAo+ID4g Cj4gPiDCoHN0cnVjdCBhc3RfZmJkZXY7Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYXN0L2FzdF9tYWluLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5j Cj4gPiBpbmRleCBmNzVjNjQyLi40MDQ2MGNlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfbWFpbi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWlu LmMKPiA+IEBAIC03Myw3ICs3MywxMCBAQCBzdGF0aWMgaW50IGFzdF9kZXRlY3RfY2hpcChzdHJ1 Y3QgZHJtX2RldmljZQo+ID4gKmRldiwgYm9vbCAqbmVlZF9wb3N0KQo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBhc3QtPmNoaXAgPSBBU1QxMTAwOwo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBEUk1fSU5GTygiQVNUIDExODAgZGV0ZWN0ZWRcbiIpOwo+ID4g wqDCoMKgwqDCoMKgwqDCoH0gZWxzZSB7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaWYgKGRldi0+cGRldi0+cmV2aXNpb24gPj0gMHgzMCkgewo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGlmIChkZXYtPnBkZXYtPnJldmlzaW9uID49IDB4NDApIHsKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0LT5jaGlwID0g QVNUMjUwMDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgRFJNX0lORk8oIkFTVCAyNTAwIGRldGVjdGVkXG4iKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB9IGVsc2UgaWYgKGRldi0+cGRldi0+cmV2aXNpb24gPj0gMHgzMCkgewo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0LT5j aGlwID0gQVNUMjQwMDsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoERSTV9JTkZPKCJBU1QgMjQwMCBkZXRlY3RlZFxuIik7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAoZGV2LT5wZGV2LT5yZXZpc2lvbiA+PSAw eDIwKSB7Cj4gPiBAQCAtMTQ5LDYgKzE1Miw4IEBAIHN0YXRpYyBpbnQgYXN0X2RldGVjdF9jaGlw KHN0cnVjdCBkcm1fZGV2aWNlCj4gPiAqZGV2LCBib29sICpuZWVkX3Bvc3QpCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg YXN0LT5zdXBwb3J0X3dpZGVfc2NyZWVuID0gdHJ1ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChhc3QtPmNoaXAgPT0gQVNUMjQwMCAmJiBk YXRhID09IDB4MTAwKQo+ID4gLyogYXN0MTQwMCAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdC0+c3VwcG9ydF93 aWRlX3NjcmVlbiA9IHRydWU7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGlmIChhc3QtPmNoaXAgPT0gQVNUMjUwMCAmJiBkYXRhID09IDB4MTAwKQo+ ID4gLyogYXN0MjUxMCAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0LT5zdXBwb3J0X3dpZGVfc2NyZWVuID0gdHJ1 ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiBAQCAt MjMzLDcgKzIzOCwyNCBAQCBzdGF0aWMgaW50IGFzdF9nZXRfZHJhbV9pbmZvKHN0cnVjdCBkcm1f ZGV2aWNlCj4gPiAqZGV2KQo+ID4gwqDCoMKgwqDCoMKgwqDCoGVsc2UKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0LT5kcmFtX2J1c193aWR0aCA9IDMyOwo+ID4gCj4gPiAt wqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwgYXN0LT5jaGlwID09IEFT VDI0MDApIHsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChhc3QtPmNoaXAgPT0gQVNUMjUwMCkgewo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN3aXRjaCAoZGF0YSAmIDB4MDMpIHsK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIDA6Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdC0+ZHJhbV90eXBlID0gQVNU X0RSQU1fMUd4MTY7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGJyZWFrOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlZmF1bHQ6 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2FzZSAxOgo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3QtPmRyYW1fdHlwZSA9IEFT VF9EUkFNXzJHeDE2Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBicmVhazsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIDI6 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdC0+ ZHJhbV90eXBlID0gQVNUX0RSQU1fNEd4MTY7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGNhc2UgMzoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgYXN0LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV84R3gxNjsKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ID4gK8KgwqDCoMKg wqDCoMKgZWxzZSBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwgYXN0LT5jaGlwID09IEFTVDI0 MDApIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3dpdGNoIChkYXRhICYg MHgwMykgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIDA6Cj4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3QtPmRyYW1f dHlwZSA9IEFTVF9EUkFNXzUxMk14MTY7Cj4gPiBAQCAtNDU2LDYgKzQ3OCw3IEBAIGludCBhc3Rf ZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+IHVuc2lnbmVkIGxvbmcgZmxh Z3MpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3QtPmNoaXAgPT0gQVNUMjIwMCB8fAo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0LT5jaGlwID09IEFTVDIzMDAgfHwKPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdC0+Y2hpcCA9PSBBU1QyNDAwIHx8Cj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGFzdC0+Y2hpcCA9PSBBU1QyNTAwIHx8Cj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBhc3QtPmNoaXAgPT0gQVNUMTE4MCkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IDE5MjA7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9 IDIwNDg7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4g PiBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ID4gaW5kZXggZTI2Yzk4Zi4uMjQy Y2E3ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4gPiBAQCAtMjcxLDcgKzI3MSwx MCBAQCBzdGF0aWMgdm9pZCBhc3Rfc2V0X2NydGNfcmVnKHN0cnVjdCBkcm1fY3J0Ywo+ID4gKmNy dGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2QKPiA+IMKgewo+ID4gwqDCoMKgwqDCoMKg wqDCoHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqB1OCBqcmVnMDUgPSAwLCBqcmVnMDcgPSAwLCBqcmVnMDkgPSAwLCBq cmVnQUMgPSAwLCBqcmVnQUQgPQo+ID4gMCwganJlZ0FFID0gMDsKPiA+IC3CoMKgwqDCoMKgwqDC oHUxNiB0ZW1wOwo+ID4gK8KgwqDCoMKgwqDCoMKgdTE2IHRlbXAsIHByZWNhY2hlID0gMDsKPiA+ ICsKPiA+ICvCoMKgwqDCoGlmICgoYXN0LT5jaGlwID09IEFTVDI1MDApICYmICh2Ymlvc19tb2Rl LT5lbmhfdGFibGUtPmZsYWdzICYKPiA+IEFTVDI1MDBQcmVDYXRjaENSVCkpCj4gPiArwqDCoMKg wqDCoMKgwqBwcmVjYWNoZSA9IDQwOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9p bmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4MTEsIDB4N2YsCj4gPiAweDAw KTsKPiA+IAo+ID4gQEAgLTI5NywxMiArMzAwLDEyIEBAIHN0YXRpYyB2b2lkIGFzdF9zZXRfY3J0 Y19yZWcoc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBqcmVnQUQgfD0gMHgwMTvC oMKgLyogSEJFIERbNV0gKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqBhc3Rfc2V0X2luZGV4X3JlZ19t YXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHgwMywgMHhFMCwKPiA+ICh0ZW1wICYgMHgxZikp Owo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgwqB0ZW1wID0gKG1vZGUtPmNydGNfaHN5bmNfc3RhcnQg Pj4gMykgLSAxOwo+ID4gK8KgwqDCoMKgwqDCoMKgdGVtcCA9ICgobW9kZS0+Y3J0Y19oc3luY19z dGFydC1wcmVjYWNoZSkgPj4gMykgLSAxOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICh0ZW1wICYg MHgxMDApCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGpyZWdBQyB8PSAweDQw OyAvKiBIUlMgRFs1XSAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoGFzdF9zZXRfaW5kZXhfcmVnX21h c2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweDA0LCAweDAwLAo+ID4gdGVtcCk7Cj4gPiAKPiA+ IC3CoMKgwqDCoMKgwqDCoHRlbXAgPSAoKG1vZGUtPmNydGNfaHN5bmNfZW5kID4+IDMpIC0gMSkg JiAweDNmOwo+ID4gK8KgwqDCoMKgwqDCoMKgdGVtcCA9ICgoKG1vZGUtPmNydGNfaHN5bmNfZW5k LXByZWNhY2hlKSA+PiAzKSAtIDEpICYgMHgzZjsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpZiAodGVt cCAmIDB4MjApCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGpyZWdBRCB8PSAw eDA0OyAvKiBIUkUgRFs1XSAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoGFzdF9zZXRfaW5kZXhfcmVn X21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweDA1LCAweDYwLAo+ID4gKHU4KSgodGVtcCAm IDB4MWYpIHwganJlZzA1KSk7Cj4gPiBAQCAtMzYzLDYgKzM2NiwxMSBAQCBzdGF0aWMgdm9pZCBh c3Rfc2V0X2NydGNfcmVnKHN0cnVjdCBkcm1fY3J0Ywo+ID4gKmNydGMsIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2QKPiA+IMKgwqDCoMKgwqDCoMKgwqBhc3Rfc2V0X2luZGV4X3JlZ19tYXNr KGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHgwOSwgMHhkZiwKPiA+IGpyZWcwOSk7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQs IDB4QUUsIDB4MDAsCj4gPiAoanJlZ0FFIHwgMHg4MCkpOwo+ID4gCj4gPiArwqDCoMKgwqBpZiAo cHJlY2FjaGUpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9pbmRl eF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YjYsCj4gPiAweDNmLCAweDgwKTsK PiA+ICvCoMKgwqDCoGVsc2UKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3Rf c2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhiNiwKPiA+IDB4M2Ys IDB4MDApOwo+ID4gKwo+ID4gwqDCoMKgwqDCoMKgwqDCoGFzdF9zZXRfaW5kZXhfcmVnX21hc2so YXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweDExLCAweDdmLAo+ID4gMHg4MCk7Cj4gPiDCoH0KPiA+ IAo+ID4gQEAgLTM4MywxMiArMzkxLDE1IEBAIHN0YXRpYyB2b2lkIGFzdF9zZXRfZGNsa19yZWco c3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptbwo+ ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYXN0X3ZiaW9zX2RjbGtfaW5mbyAqY2xr X2luZm87Cj4gPiAKPiA+IC3CoMKgwqDCoMKgwqDCoGNsa19pbmZvID0gJmRjbGtfdGFibGVbdmJp b3NfbW9kZS0+ZW5oX3RhYmxlLT5kY2xrX2luZGV4XTsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChh c3QtPmNoaXAgPT0gQVNUMjUwMCkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBj bGtfaW5mbyA9ICZkY2xrX3RhYmxlX2FzdDI1MDBbdmJpb3NfbW9kZS0KPiA+ID5lbmhfdGFibGUt PmRjbGtfaW5kZXhdOwo+ID4gK8KgwqDCoMKgwqDCoMKgZWxzZQo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNsa19pbmZvID0gJmRjbGtfdGFibGVbdmJpb3NfbW9kZS0+ZW5oX3Rh YmxlLQo+ID4gPmRjbGtfaW5kZXhdOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9p bmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YzAsIDB4MDAsCj4gPiBjbGtf aW5mby0+cGFyYW0xKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBhc3Rfc2V0X2luZGV4X3JlZ19tYXNr KGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhjMSwgMHgwMCwKPiA+IGNsa19pbmZvLT5wYXJhbTIp Owo+ID4gwqDCoMKgwqDCoMKgwqDCoGFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9f Q1JUQ19QT1JULCAweGJiLCAweDBmLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChjbGtfaW5mby0+cGFyYW0zICYgMHg4MCkg fAo+ID4gKChjbGtfaW5mby0+cGFyYW0zICYgMHgzKSA8PCA0KSk7Cj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKGNsa19pbmZv LT5wYXJhbTMgJiAweGMwKSB8Cj4gPiAoKGNsa19pbmZvLT5wYXJhbTMgJiAweDMpIDw8IDQpKTsK PiA+IMKgfQo+ID4gCj4gPiDCoHN0YXRpYyB2b2lkIGFzdF9zZXRfZXh0X3JlZyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHN0cnVjdAo+ID4gZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+IEBAIC00 MjEsNyArNDMyLDcgQEAgc3RhdGljIHZvaWQgYXN0X3NldF9leHRfcmVnKHN0cnVjdCBkcm1fY3J0 Ywo+ID4gKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlCj4gPiDCoMKgwqDCoMKg wqDCoMKgYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YTgs IDB4ZmQsCj4gPiBqcmVnQTgpOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgLyogU2V0IFRocmVz aG9sZCAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgaWYgKGFzdC0+Y2hpcCA9PSBBU1QyMzAwIHx8IGFz dC0+Y2hpcCA9PSBBU1QyNDAwKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09 IEFTVDIzMDAgfHwgYXN0LT5jaGlwID09IEFTVDI0MDAgfHwgYXN0LQo+ID4gPmNoaXAgPT0gQVNU MjUwMCkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3Rfc2V0X2luZGV4 X3JlZyhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YTcsCj4gPiAweDc4KTsKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9pbmRleF9yZWcoYXN0LCBBU1RfSU9fQ1JU Q19QT1JULCAweGE2LAo+ID4gMHg2MCk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChh c3QtPmNoaXAgPT0gQVNUMjEwMCB8fAo+ID4gQEAgLTc5NCw3ICs4MDUsNyBAQCBzdGF0aWMgaW50 IGFzdF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiAqY29ubmVjdG9yLAo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoKG1vZGUtPmhkaXNwbGF5ID09IDE2 MDApICYmIChtb2RlLT52ZGlzcGxheSA9PQo+ID4gOTAwKSkKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBNT0RFX09LOwo+ID4gCj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKChhc3QtPmNoaXAgPT0gQVNUMjEwMCkg fHwgKGFzdC0+Y2hpcCA9PQo+ID4gQVNUMjIwMCkgfHwgKGFzdC0+Y2hpcCA9PSBBU1QyMzAwKSB8 fCAoYXN0LT5jaGlwID09IEFTVDI0MDApIHx8Cj4gPiAoYXN0LT5jaGlwID09IEFTVDExODApKSB7 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKChhc3QtPmNoaXAgPT0gQVNU MjEwMCkgfHwgKGFzdC0+Y2hpcCA9PQo+ID4gQVNUMjIwMCkgfHwgKGFzdC0+Y2hpcCA9PSBBU1Qy MzAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDI0MDApIHx8Cj4gPiAoYXN0LT5jaGlwID09IEFTVDI1 MDApIHx8IChhc3QtPmNoaXAgPT0gQVNUMTE4MCkpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgobW9kZS0+aGRpc3BsYXkgPT0gMTkyMCkg JiYgKG1vZGUtCj4gPiA+dmRpc3BsYXkgPT0gMTA4MCkpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIE1PREVf T0s7Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMK PiA+IGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jCj4gPiBpbmRleCA4MTBjNTFkLi4w NWQ3ZDM2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMKPiA+IEBAIC0zMiw2ICszMiw3 IEBACj4gPiDCoCNpbmNsdWRlICJhc3RfZHJhbV90YWJsZXMuaCIKPiA+IAo+ID4gwqBzdGF0aWMg dm9pZCBhc3RfaW5pdF9kcmFtXzIzMDAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiArc3Rh dGljIHZvaWQgYXN0X2luaXRfZHJhbV8yNTAwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4g Cj4gPiDCoHZvaWQgYXN0X2VuYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+IMKg ewo+ID4gQEAgLTgyLDcgKzgzLDcgQEAgYm9vbCBhc3RfaXNfdmdhX2VuYWJsZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiA+IMKgwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAweDgxOyBpIDw9IDB4 OGY7IGkrKykKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9pbmRl eF9yZWcoYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCBpLCAweDAwKTsKPiA+IAo+ID4gLcKgwqDCoMKg wqDCoMKgaWYgKGFzdC0+Y2hpcCA9PSBBU1QyMzAwIHx8IGFzdC0+Y2hpcCA9PSBBU1QyNDAwKSB7 Cj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwgYXN0LT5jaGlw ID09IEFTVDI0MDAgfHwgYXN0LQo+ID4gPmNoaXAgPT0gQVNUMjUwMCkgewo+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoZGV2LT5wZGV2LT5yZXZpc2lvbiA+PSAweDIwKQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZXh0X3Jl Z19pbmZvID0gZXh0cmVnaW5mb19hc3QyMzAwOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBlbHNlCj4gPiBAQCAtMTA2LDcgKzEwNyw3IEBAIGJvb2wgYXN0X2lzX3ZnYV9lbmFi bGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqAvKiBF bmFibGUgUkFNREFDIGZvciBBMSAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoHJlZyA9IDB4MDQ7Cj4g PiAtwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwgYXN0LT5jaGlwID09 IEFTVDI0MDApCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwg YXN0LT5jaGlwID09IEFTVDI0MDAgfHwgYXN0LQo+ID4gPmNoaXAgPT0gQVNUMjUwMCkKPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVnIHw9IDB4MjA7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YjYs IDB4ZmYsCj4gPiByZWcpOwo+ID4gwqB9Cj4gPiBAQCAtMzc5LDcgKzM4MCw5IEBAIHZvaWQgYXN0 X3Bvc3RfZ3B1KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiDCoMKgwqDCoMKgwqDCoMKgYXN0 X29wZW5fa2V5KGFzdCk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgYXN0X3NldF9kZWZfZXh0X3JlZyhk ZXYpOwo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwg YXN0LT5jaGlwID09IEFTVDI0MDApCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoYXN0LT5jaGlwID09 IEFTVDI1MDApCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X2luaXRfZHJh bV8yNTAwKGRldik7Cj4gPiArwqDCoMKgwqDCoMKgwqBlbHNlIGlmIChhc3QtPmNoaXAgPT0gQVNU MjMwMCB8fCBhc3QtPmNoaXAgPT0gQVNUMjQwMCkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgYXN0X2luaXRfZHJhbV8yMzAwKGRldik7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgZWxz ZQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3RfaW5pdF9kcmFtX3JlZyhk ZXYpOwo+ID4gQEAgLTE2NTUsMyArMTY1OCw1MDQgQEAgc3RhdGljIHZvaWQgYXN0X2luaXRfZHJh bV8yMzAwKHN0cnVjdAo+ID4gZHJtX2RldmljZSAqZGV2KQo+ID4gwqDCoMKgwqDCoMKgwqDCoH0g d2hpbGUgKChyZWcgJiAweDQwKSA9PSAwKTsKPiA+IMKgfQo+ID4gCj4gPiArLyoKPiA+ICsgKiBB U1QyNTAwIERSQU0gc2V0dGluZ3MgbW9kdWxlcwo+ID4gKyAqLwo+ID4gKyNkZWZpbmUgUkVHVEJM X05VTcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxNwo+ID4gKyNkZWZpbmUgUkVHSURYXzAxMMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAwCj4gPiArI2RlZmluZSBSRUdJRFhfMDE0wqDCoMKgwqDCoMKgwqDC oMKgwqDCoDEKPiA+ICsjZGVmaW5lIFJFR0lEWF8wMTjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMgo+ ID4gKyNkZWZpbmUgUkVHSURYXzAyMMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAzCj4gPiArI2RlZmlu ZSBSRUdJRFhfMDI0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDQKPiA+ICsjZGVmaW5lIFJFR0lEWF8w MkPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgNQo+ID4gKyNkZWZpbmUgUkVHSURYXzAzMMKgwqDCoMKg wqDCoMKgwqDCoMKgwqA2Cj4gPiArI2RlZmluZSBSRUdJRFhfMjE0wqDCoMKgwqDCoMKgwqDCoMKg wqDCoDcKPiA+ICsjZGVmaW5lIFJFR0lEWF8yRTDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOAo+ID4g KyNkZWZpbmUgUkVHSURYXzJFNMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA5Cj4gPiArI2RlZmluZSBS RUdJRFhfMkU4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDEwCj4gPiArI2RlZmluZSBSRUdJRFhfMkVD wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDExCj4gPiArI2RlZmluZSBSRUdJRFhfMkYwwqDCoMKgwqDC oMKgwqDCoMKgwqDCoDEyCj4gPiArI2RlZmluZSBSRUdJRFhfMkY0wqDCoMKgwqDCoMKgwqDCoMKg wqDCoDEzCj4gPiArI2RlZmluZSBSRUdJRFhfMkY4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDE0Cj4g PiArI2RlZmluZSBSRUdJRFhfUkZDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDE1Cj4gPiArI2RlZmlu ZSBSRUdJRFhfUExMwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDE2Cj4gPiArCj4gPiArc3RhdGljIHUz MiBkZHIzXzE2MDBfdGltaW5nX3RhYmxlW1JFR1RCTF9OVU1dID0gewo+ID4gKzB4NjQ2MDREMzgs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgwMTAgKi8KPiA+ICsweDI5 NjkwNTk5LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MDE0ICovCj4g PiArMHgwMDAwMDMwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDAx OCAqLwo+ID4gKzB4MDAwMDAwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LyogMHgwMjAgKi8KPiA+ICsweDAwMDAwMDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qIDB4MDI0ICovCj4gPiArMHgwMjE4MUU3MCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKiAweDAyQyAqLwo+ID4gKzB4MDAwMDAwNDAswqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgwMzAgKi8KPiA+ICsweDAwMDAwMDI0LMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MjE0ICovCj4gPiArMHgwMjAwMTMwMCzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDJFMCAqLwo+ID4gKzB4MEUw MDAwQTAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgyRTQgKi8KPiA+ ICsweDAwMEUwMDFCLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MkU4 ICovCj4gPiArMHgzNUI4QzEwNSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAv KiAweDJFQyAqLwo+ID4gKzB4MDgwOTA0MDgswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgLyogMHgyRjAgKi8KPiA+ICsweDlCMDAwODAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC8qIDB4MkY0ICovCj4gPiArMHgwRTQwMEEwMCzCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDJGOCAqLwo+ID4gKzB4OTk3MTQ1MkYswqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogdFJGQ8KgwqAqLwo+ID4gKzB4MDAwMDcxQzF9 O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBQTEzCoMKgwqAqLwo+ID4gKwo+ ID4gK3N0YXRpYyB1MzIgZGRyNF8xNjAwX3RpbWluZ190YWJsZVtSRUdUQkxfTlVNXSA9IHsKPiA+ ICsweDYzNjA0RTM3LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MDEw ICovCj4gPiArMHhFOTdBRkE5OSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAv KiAweDAxNCAqLwo+ID4gKzB4MDAwMTkwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgLyogMHgwMTggKi8KPiA+ICsweDA4MDAwMDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC8qIDB4MDIwICovCj4gPiArMHgwMDAwMDQwMCzCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDAyNCAqLwo+ID4gKzB4MDAwMDA0MTAswqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgwMkMgKi8KPiA+ICsweDAwMDAwMTAxLMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MDMwICovCj4gPiArMHgwMDAw MDAyNCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDIxNCAqLwo+ID4g KzB4MDMwMDI5MDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgyRTAg Ki8KPiA+ICsweDBFMDAwMEEwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8q IDB4MkU0ICovCj4gPiArMHgwMDBFMDAxQyzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAvKiAweDJFOCAqLwo+ID4gKzB4MzVCOEMxMDYswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgLyogMHgyRUMgKi8KPiA+ICsweDA4MDgwNjA3LMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC8qIDB4MkYwICovCj4gPiArMHg5QjAwMDkwMCzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiAweDJGNCAqLwo+ID4gKzB4MEU0MDBBMDAswqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogMHgyRjggKi8KPiA+ICsweDk5NzE0 NTQ1LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIHRSRkPCoMKgKi8KPiA+ ICsweDAwMDA3MUMxfTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogUExMwqDC oMKgKi8KPiA+ICsKPiA+ICtzdGF0aWMgdTMyIE1NQ1Rlc3RCdXJzdF9BU1QyNTAwKHN0cnVjdCBh c3RfcHJpdmF0ZSAqYXN0LCB1MzIKPiA+IGRhdGFnZW4pCj4gPiArewo+ID4gK8KgwqB1MzIgZGF0 YSwgdGltZWNudDsKPiA+ICsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDcwLCAw eDAwMDAwMDAwKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDcwLCAweDAwMDAw MEMxIHwgKGRhdGFnZW4gPDwgMykpOwo+ID4gK8KgwqB0aW1lY250ID0gMDsKPiA+ICvCoMKgZG97 Cj4gPiArwqDCoMKgwqBkYXRhID0gYXN0X21pbmR3bShhc3QsIDB4MUU2RTAwNzApICYgMHgzMDAw Owo+ID4gK8KgwqDCoMKgaWYoZGF0YSAmIDB4MjAwMCl7Cj4gPiArwqDCoMKgwqDCoMKgcmV0dXJu KDApOwo+ID4gK8KgwqDCoMKgfQo+ID4gK8KgwqDCoMKgaWYoKyt0aW1lY250ID4gVElNRU9VVCl7 Cj4gPiArwqDCoMKgwqDCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDcwLCAweDAwMDAwMDAw KTsKPiA+ICvCoMKgwqDCoMKgwqByZXR1cm4oMCk7Cj4gPiArwqDCoMKgwqB9Cj4gPiArwqDCoH13 aGlsZSghZGF0YSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA3MCwgMHgwMDAw MDAwMCk7Cj4gPiArwqDCoHJldHVybigxKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHUzMiBN TUNUZXN0U2luZ2xlX0FTVDI1MDAoc3RydWN0IGFzdF9wcml2YXRlICphc3QsIHUzMgo+ID4gZGF0 YWdlbikKPiA+ICt7Cj4gPiArwqDCoHUzMiBkYXRhLCB0aW1lY250Owo+ID4gKwo+ID4gK8KgwqBh c3RfbW91dGR3bShhc3QsIDB4MUU2RTAwNzAsIDB4MDAwMDAwMDApOwo+ID4gK8KgwqBhc3RfbW91 dGR3bShhc3QsIDB4MUU2RTAwNzAsIDB4MDAwMDAwODUgfCAoZGF0YWdlbiA8PCAzKSk7Cj4gPiAr wqDCoHRpbWVjbnQgPSAwOwo+ID4gK8KgwqBkb3sKPiA+ICvCoMKgwqDCoGRhdGEgPSBhc3RfbWlu ZHdtKGFzdCwgMHgxRTZFMDA3MCkgJiAweDMwMDA7Cj4gPiArwqDCoMKgwqBpZihkYXRhICYgMHgy MDAwKXsKPiA+ICvCoMKgwqDCoMKgwqByZXR1cm4oMCk7Cj4gPiArwqDCoMKgwqB9Cj4gPiArwqDC oMKgwqBpZigrK3RpbWVjbnQgPiBUSU1FT1VUKXsKPiA+ICvCoMKgwqDCoMKgwqBhc3RfbW91dGR3 bShhc3QsIDB4MUU2RTAwNzAsIDB4MDAwMDAwMDApOwo+ID4gK8KgwqDCoMKgwqDCoHJldHVybigw KTsKPiA+ICvCoMKgwqDCoH0KPiA+ICvCoMKgfXdoaWxlKCFkYXRhKTsKPiA+ICvCoMKgYXN0X21v dXRkd20oYXN0LCAweDFFNkUwMDcwLCAweDAwMDAwMDAwKTsKPiA+ICvCoMKgcmV0dXJuKDEpOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdTMyIENCUlRlc3RfQVNUMjUwMChzdHJ1Y3QgYXN0X3By aXZhdGUgKmFzdCkKPiA+ICt7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA3NCwg MHgwMDAwRkZGRik7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA3QywgMHhGRjAw RkYwMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0QnVyc3RfQVNUMjUwMChhc3QsIDApKSByZXR1cm4o MCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0U2luZ2xlX0FTVDI1MDAoYXN0LCAwKSkgcmV0dXJuKDAp Owo+ID4gK8KgwqByZXR1cm4oMSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBib29sIEREUlRl c3RfQVNUMjUwMChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkKPiA+ICt7Cj4gPiArwqDCoGFzdF9t b3V0ZHdtKGFzdCwgMHgxRTZFMDA3NCwgMHgwMDAwRkZGRik7Cj4gPiArwqDCoGFzdF9tb3V0ZHdt KGFzdCwgMHgxRTZFMDA3QywgMHhGRjAwRkYwMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0QnVyc3Rf QVNUMjUwMChhc3QsIDApKSByZXR1cm4oMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0QnVyc3RfQVNU MjUwMChhc3QsIDEpKSByZXR1cm4oMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0QnVyc3RfQVNUMjUw MChhc3QsIDIpKSByZXR1cm4oMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0QnVyc3RfQVNUMjUwMChh c3QsIDMpKSByZXR1cm4oMCk7Cj4gPiArwqDCoGlmKCFNTUNUZXN0U2luZ2xlX0FTVDI1MDAoYXN0 LCAwKSkgcmV0dXJuKDApOwo+ID4gK8KgwqByZXR1cm4oMSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIEREUl9Jbml0X0NvbW1vbihzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkKPiA+ICt7 Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAzNCwweDAwMDIwMDgwKTsKPiA+ICvC oMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDA4LDB4MjAwMzAwMEYpOwo+ID4gK8KgwqBhc3Rf bW91dGR3bShhc3QsIDB4MUU2RTAwMzgsMHgwMDAwMEZGRik7Cj4gPiArwqDCoGFzdF9tb3V0ZHdt KGFzdCwgMHgxRTZFMDA0MCwweDg4NDQ4ODQ0KTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAw eDFFNkUwMDQ0LDB4MjQ0MjIyODgpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAw NDgsMHgyMjIyMjIyMik7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA0QywweDIy MjIyMjIyKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDUwLDB4ODAwMDAwMDAp Owo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyMDgsMHgwMDAwMDAwMCk7Cj4gPiAr wqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDIxOCwweDAwMDAwMDAwKTsKPiA+ICvCoMKgYXN0 X21vdXRkd20oYXN0LCAweDFFNkUwMjIwLDB4MDAwMDAwMDApOwo+ID4gK8KgwqBhc3RfbW91dGR3 bShhc3QsIDB4MUU2RTAyMjgsMHgwMDAwMDAwMCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwg MHgxRTZFMDIzMCwweDAwMDAwMDAwKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUw MkE4LDB4MDAwMDAwMDApOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyQjAsMHgw MDAwMDAwMCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDI0MCwweDg2MDAwMDAw KTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMjQ0LDB4MDAwMDg2MDApOwo+ID4g K8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyNDgsMHg4MDAwMDAwMCk7Cj4gPiArwqDCoGFz dF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDI0QywweDgwODA4MDgwKTsKPiA+ICt9Cj4gPiArCj4gPiAr c3RhdGljIHZvaWQgRG9fRERSUEhZX0luaXQoc3RydWN0IGFzdF9wcml2YXRlICphc3QpCj4gPiAr ewo+ID4gK8KgwqB1MzIgZGF0YSwgcGFzcywgdGltZWNudDsKPiA+ICsKPiA+ICvCoMKgcGFzcyA9 IDA7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA2MCwweDAwMDAwMDA1KTsKPiA+ ICvCoMKgd2hpbGUoIXBhc3Mpewo+ID4gK8KgwqDCoMKgZm9yKHRpbWVjbnQgPSAwO3RpbWVjbnQg PCBUSU1FT1VUO3RpbWVjbnQrKyl7Cj4gPiArwqDCoMKgwqDCoMKgZGF0YSA9IGFzdF9taW5kd20o YXN0LCAweDFFNkUwMDYwKSAmIDB4MTsKPiA+ICvCoMKgwqDCoMKgwqBpZighZGF0YSl7Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ID4gK8KgwqDCoMKgwqDCoH0KPiA+ICvCoMKgwqDCoH0K PiA+ICvCoMKgwqDCoGlmKHRpbWVjbnQgIT0gVElNRU9VVCl7Cj4gPiArwqDCoMKgwqDCoMKgZGF0 YSA9IGFzdF9taW5kd20oYXN0LCAweDFFNkUwMzAwKSAmIDB4MDAwQTAwMDA7Cj4gPiArwqDCoMKg wqDCoMKgaWYoIWRhdGEpewo+ID4gK8KgwqDCoMKgwqDCoMKgwqBwYXNzID0gMTsKPiA+ICvCoMKg wqDCoMKgwqB9Cj4gPiArwqDCoMKgwqB9Cj4gPiArwqDCoMKgwqBpZighcGFzcyl7Cj4gPiArwqDC oMKgwqDCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDYwLDB4MDAwMDAwMDApOwo+ID4gK8Kg wqDCoMKgwqDCoHVkZWxheSgxMCk7IC8qIGRlbGF5IDEwIHVzICovCj4gPiArwqDCoMKgwqDCoMKg YXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDYwLDB4MDAwMDAwMDUpOwo+ID4gK8KgwqDCoMKgfQo+ ID4gK8KgwqB9Cj4gPiArCj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDA2MCwweDAw MDAwMDA2KTsKPiA+ICt9Cj4gPiArCj4gPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gPiAqKioqKioqKioqKioqCj4g PiArIENoZWNrIERSQU0gU2l6ZQo+ID4gKyAxR2IgOiAweDgwMDAwMDAwIH4gMHg4N0ZGRkZGRgo+ ID4gKyAyR2IgOiAweDgwMDAwMDAwIH4gMHg4RkZGRkZGRgo+ID4gKyA0R2IgOiAweDgwMDAwMDAw IH4gMHg5RkZGRkZGRgo+ID4gKyA4R2IgOiAweDgwMDAwMDAwIH4gMHhCRkZGRkZGRgo+ID4gKwo+ ID4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+ID4gKioqKioqKioqKi8KPiA+ICtzdGF0aWMgdm9pZCBDaGVja19EUkFN X1NpemUoc3RydWN0IGFzdF9wcml2YXRlICphc3QsIHUzMiB0UkZDKQo+ID4gK3sKPiA+ICvCoMKg dTMyIHJlZ18wNCwgcmVnXzE0Owo+ID4gKwo+ID4gK8KgwqByZWdfMDQgPSBhc3RfbWluZHdtKGFz dCwgMHgxRTZFMDAwNCkgJiAweGZmZmZmZmZjOwo+ID4gK8KgwqByZWdfMTQgPSBhc3RfbWluZHdt KGFzdCwgMHgxRTZFMDAxNCkgJiAweGZmZmZmZjAwOwo+ID4gKwo+ID4gK8KgwqBhc3RfbW91dGR3 bShhc3QsIDB4QTAxMDAwMDAsIDB4NDE0MjQzNDQpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3Qs IDB4OTAxMDAwMDAsIDB4MzUzNjM3MzgpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4ODgx MDAwMDAsIDB4MjkyQTJCMkMpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4ODAxMDAwMDAs IDB4MUQxRTFGMTApOwo+ID4gKwo+ID4gK8KgwqAvKiBDaGVjayA4R2JpdCAqLwo+ID4gK8KgwqBp Zihhc3RfbWluZHdtKGFzdCwgMHhBMDEwMDAwMCkgPT0gMHg0MTQyNDM0NCl7Cj4gPiArwqDCoMKg wqByZWdfMDQgfD0gMHgwMzsKPiA+ICvCoMKgwqDCoHJlZ18xNCB8PSAodFJGQyA+PiAyNCkgJiAw eEZGOwo+ID4gK8KgwqAvKiBDaGVjayA0R2JpdCAqLwo+ID4gK8KgwqB9ZWxzZSBpZihhc3RfbWlu ZHdtKGFzdCwgMHg5MDEwMDAwMCkgPT0gMHgzNTM2MzczOCl7Cj4gPiArwqDCoMKgwqByZWdfMDQg fD0gMHgwMjsKPiA+ICvCoMKgwqDCoHJlZ18xNCB8PSAodFJGQyA+PiAxNikgJiAweEZGOwo+ID4g K8KgwqAvKiBDaGVjayAyR2JpdCAqLwo+ID4gK8KgwqB9ZWxzZSBpZihhc3RfbWluZHdtKGFzdCwg MHg4ODEwMDAwMCkgPT0gMHgyOTJBMkIyQyl7Cj4gPiArwqDCoMKgwqByZWdfMDQgfD0gMHgwMTsK PiA+ICvCoMKgwqDCoHJlZ18xNCB8PSAodFJGQyA+PiA4KSAmIDB4RkY7Cj4gPiArwqDCoH1lbHNl ewo+ID4gK8KgwqDCoMKgcmVnXzE0IHw9IHRSRkMgJiAweEZGOwo+ID4gK8KgwqB9Cj4gPiArwqDC oGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAwNCwgcmVnXzA0KTsKPiA+ICvCoMKgYXN0X21vdXRk d20oYXN0LCAweDFFNkUwMDE0LCByZWdfMTQpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9p ZCBFbmFibGVfQ2FjaGUoc3RydWN0IGFzdF9wcml2YXRlICphc3QpCj4gPiArewo+ID4gK8KgwqB1 MzIgcmVnXzA0LCBkYXRhOwo+ID4gKwo+ID4gK8KgwqByZWdfMDQgPSBhc3RfbWluZHdtKGFzdCwg MHgxRTZFMDAwNCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAwNCwgcmVnXzA0 IHwgMHgxMDAwKTsKPiA+ICsKPiA+ICvCoMKgZG97Cj4gPiArwqDCoMKgwqBkYXRhID0gYXN0X21p bmR3bShhc3QsIDB4MUU2RTAwMDQpOwo+ID4gK8KgwqB9d2hpbGUoIShkYXRhICYgMHg4MDAwMCkp Owo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMDQsIHJlZ18wNCB8IDB4NDAwKTsK PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgU2V0X01QTEwoc3RydWN0IGFzdF9wcml2YXRl ICphc3QpCj4gPiArewo+ID4gK8KgwqB1MzIgYWRkciwgZGF0YSwgcGFyYW07Cj4gPiArCj4gPiAr wqDCoC8qIFJlc2V0IE1NQyAqLwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMDAs MHhGQzYwMDMwOSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAzNCwweDAwMDIw MDgwKTsKPiA+ICvCoMKgZm9yKGFkZHIgPSAweDFlNmUwMDA0O2FkZHIgPCAweDFlNmUwMDkwOyl7 Cj4gPiArwqDCoMKgwqBhc3RfbW91dGR3bShhc3QsIGFkZHIsIDB4MCk7Cj4gPiArwqDCoMKgwqBh ZGRyICs9IDQ7Cj4gPiArwqDCoH0KPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDM0 LDB4MDAwMjAwMDApOwo+ID4gKwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTIwMDAs IDB4MTY4OEE4QTgpOwo+ID4gK8KgwqBkYXRhID0gYXN0X21pbmR3bShhc3QsIDB4MUU2RTIwNzAp ICYgMHgwMDgwMDAwMDsKPiA+ICvCoMKgaWYoZGF0YSl7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgLyogQ0xLSU4gPSAyNU1IeiAqLwo+ID4gK8KgwqDCoMKgcGFyYW0gPSAweDkz MDAyM0UwOwo+ID4gK8KgwqDCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUyMTYwLCAweDAwMDEx MzIwKTsKPiA+ICvCoMKgfWVsc2V7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBDTEtJTiA9IDI0 TUh6Cj4gPiAqLwo+ID4gK8KgwqDCoMKgcGFyYW0gPSAweDkzMDAyNDAwOwo+ID4gK8KgwqB9Cj4g PiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMjAyMCwgcGFyYW0pOwo+ID4gK8KgwqB1ZGVs YXkoMTAwKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgUmVzZXRfTU1DKHN0cnVjdCBh c3RfcHJpdmF0ZSAqYXN0KQo+ID4gK3sKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNzg1 MDVDLDB4MDAwMDAwMDQpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU3ODUwNDQsMHgw MDAwMDAwMSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTc4NTA0OCwweDAwMDA0NzU1 KTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNzg1MDRDLDB4MDAwMDAwMTMpOwo+ID4g K8KgwqBtZGVsYXkoMTAwKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBkZWxheSAxMDBtcyAqLwo+ID4gK8KgwqBhc3Rf bW91dGR3bShhc3QsIDB4MUU3ODUwNTQsMHgwMDAwMDA3Nyk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdt KGFzdCwgMHgxRTZFMDAwMCwweEZDNjAwMzA5KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZv aWQgRERSM19Jbml0X0FTVDI1MDAoc3RydWN0IGFzdF9wcml2YXRlICphc3QsIHUzMgo+ID4gKmRk cl90YWJsZSkKPiA+ICt7Cj4gPiArCj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAw NCwweDAwMDAwMzAzKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDEwLGRkcl90 YWJsZVtSRUdJRFhfMDEwXSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAxNCxk ZHJfdGFibGVbUkVHSURYXzAxNF0pOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAw MTgsZGRyX3RhYmxlW1JFR0lEWF8wMThdKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFF NkUwMDIwLGRkcl90YWJsZVtSRUdJRFhfMDIwXSk7wqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4g TU9ERVJFRzQvNiAqLwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMjQsZGRyX3Rh YmxlW1JFR0lEWF8wMjRdKTvCoMKgwqDCoMKgwqDCoMKgwqDCoC8qCj4gPiBNT0RFUkVHNSAqLwo+ ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMkMsZGRyX3RhYmxlW1JFR0lEWF8wMkNd IHwgMHgxMDApO8KgwqAvKgo+ID4gTU9ERVJFRzAvMiAqLwo+ID4gK8KgwqBhc3RfbW91dGR3bShh c3QsIDB4MUU2RTAwMzAsZGRyX3RhYmxlW1JFR0lEWF8wMzBdKTvCoMKgwqDCoMKgwqDCoMKgwqDC oC8qCj4gPiBNT0RFUkVHMS8zICovCj4gPiArCj4gPiArwqDCoC8qIEREUiBQSFkgU2V0dGluZyAq Lwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyMDAsMHgwMjQ5MkFBRSk7Cj4gPiAr wqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDIwNCwweDAwMDAxMDAxKTsKPiA+ICvCoMKgYXN0 X21vdXRkd20oYXN0LCAweDFFNkUwMjBDLDB4NTVFMDBCMEIpOwo+ID4gK8KgwqBhc3RfbW91dGR3 bShhc3QsIDB4MUU2RTAyMTAsMHgyMDAwMDAwMCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwg MHgxRTZFMDIxNCxkZHJfdGFibGVbUkVHSURYXzIxNF0pOwo+ID4gK8KgwqBhc3RfbW91dGR3bShh c3QsIDB4MUU2RTAyRTAsZGRyX3RhYmxlW1JFR0lEWF8yRTBdKTsKPiA+ICvCoMKgYXN0X21vdXRk d20oYXN0LCAweDFFNkUwMkU0LGRkcl90YWJsZVtSRUdJRFhfMkU0XSk7Cj4gPiArwqDCoGFzdF9t b3V0ZHdtKGFzdCwgMHgxRTZFMDJFOCxkZHJfdGFibGVbUkVHSURYXzJFOF0pOwo+ID4gK8KgwqBh c3RfbW91dGR3bShhc3QsIDB4MUU2RTAyRUMsZGRyX3RhYmxlW1JFR0lEWF8yRUNdKTsKPiA+ICvC oMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkYwLGRkcl90YWJsZVtSRUdJRFhfMkYwXSk7Cj4g PiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDJGNCxkZHJfdGFibGVbUkVHSURYXzJGNF0p Owo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyRjgsZGRyX3RhYmxlW1JFR0lEWF8y RjhdKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMjkwLDB4MDAxMDAwMDgpOwo+ ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyQzAsMHgwMDAwMDAwNik7Cj4gPiArCj4g PiArwqDCoC8qIENvbnRyb2xsZXIgU2V0dGluZyAqLwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3Qs IDB4MUU2RTAwMzQsMHgwMDAyMDA5MSk7Cj4gPiArCj4gPiArwqDCoC8qIFdhaXQgRERSIFBIWSBp bml0IGRvbmUgKi8KPiA+ICvCoMKgRG9fRERSUEhZX0luaXQoYXN0KTsKPiA+ICsKPiA+ICvCoMKg YXN0X21vdXRkd20oYXN0LCAweDFFNkUwMTIwLGRkcl90YWJsZVtSRUdJRFhfUExMXSk7Cj4gPiAr wqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAwQywweDQyQUE1QzgxKTsKPiA+ICvCoMKgYXN0 X21vdXRkd20oYXN0LCAweDFFNkUwMDM0LDB4MDAwMUFGOTMpOwo+ID4gKwo+ID4gK8KgwqBDaGVj a19EUkFNX1NpemUoYXN0LCBkZHJfdGFibGVbUkVHSURYX1JGQ10pOwo+ID4gK8KgwqBFbmFibGVf Q2FjaGUoYXN0KTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDFDLDB4MDAwMDAw MDgpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMzgsMHhGRkZGRkYwMCk7Cj4g PiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIEREUjRfSW5pdF9BU1QyNTAwKHN0cnVjdCBhc3Rf cHJpdmF0ZSAqYXN0LCB1MzIKPiA+ICpkZHJfdGFibGUpCj4gPiArewo+ID4gK8KgwqB1MzIgZGF0 YSwgZGF0YTIsIHBhc3MsIHJldHJ5Y250Owo+ID4gK8KgwqB1MzIgZGRyX3ZyZWYsIHBoeV92cmVm Owo+ID4gK8KgwqB1MzIgbWluX2Rkcl92cmVmPTAsIG1pbl9waHlfdnJlZj0wOwo+ID4gK8KgwqB1 MzIgbWF4X2Rkcl92cmVmPTAsIG1heF9waHlfdnJlZj0wOwo+ID4gKwo+ID4gK8KgwqBhc3RfbW91 dGR3bShhc3QsIDB4MUU2RTAwMDQsMHgwMDAwMDMxMyk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFz dCwgMHgxRTZFMDAxMCxkZHJfdGFibGVbUkVHSURYXzAxMF0pOwo+ID4gK8KgwqBhc3RfbW91dGR3 bShhc3QsIDB4MUU2RTAwMTQsZGRyX3RhYmxlW1JFR0lEWF8wMTRdKTsKPiA+ICvCoMKgYXN0X21v dXRkd20oYXN0LCAweDFFNkUwMDE4LGRkcl90YWJsZVtSRUdJRFhfMDE4XSk7Cj4gPiArwqDCoGFz dF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAyMCxkZHJfdGFibGVbUkVHSURYXzAyMF0pO8KgwqDCoMKg wqDCoMKgwqDCoMKgLyoKPiA+IE1PREVSRUc0LzYgKi8KPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0 LCAweDFFNkUwMDI0LGRkcl90YWJsZVtSRUdJRFhfMDI0XSk7wqDCoMKgwqDCoMKgwqDCoMKgwqAv Kgo+ID4gTU9ERVJFRzUgKi8KPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDJDLGRk cl90YWJsZVtSRUdJRFhfMDJDXSB8IDB4MTAwKTvCoMKgLyoKPiA+IE1PREVSRUcwLzIgKi8KPiA+ ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDMwLGRkcl90YWJsZVtSRUdJRFhfMDMwXSk7 wqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gTU9ERVJFRzEvMyAqLwo+ID4gKwo+ID4gK8KgwqAv KiBERFIgUEhZIFNldHRpbmcgKi8KPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMjAw LDB4NDI0OTJBQUUpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyMDQsMHgwOTAw MjAwMCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDIwQywweDU1RTAwQjBCKTsK PiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMjEwLDB4MjAwMDAwMDApOwo+ID4gK8Kg wqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyMTQsZGRyX3RhYmxlW1JFR0lEWF8yMTRdKTsKPiA+ ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkUwLGRkcl90YWJsZVtSRUdJRFhfMkUwXSk7 Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDJFNCxkZHJfdGFibGVbUkVHSURYXzJF NF0pOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyRTgsZGRyX3RhYmxlW1JFR0lE WF8yRThdKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkVDLGRkcl90YWJsZVtS RUdJRFhfMkVDXSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDJGMCxkZHJfdGFi bGVbUkVHSURYXzJGMF0pOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyRjQsZGRy X3RhYmxlW1JFR0lEWF8yRjRdKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkY4 LGRkcl90YWJsZVtSRUdJRFhfMkY4XSk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZF MDI5MCwweDAwMTAwMDA4KTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkM0LDB4 M0MxODNDM0MpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyQzgsMHgwMDYzMUUw RSk7Cj4gPiArCj4gPiArwqDCoC8qIENvbnRyb2xsZXIgU2V0dGluZyAqLwo+ID4gK8KgwqBhc3Rf bW91dGR3bShhc3QsIDB4MUU2RTAwMzQsMHgwMDAxQTk5MSk7Cj4gPiArCj4gPiArwqDCoC8qIFRy YWluIFBIWSBWcmVmIGZpcnN0ICovCj4gPiArwqDCoHBhc3MgPQo+ID4gMDvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAv KiBhZGQgYXQgVjEuMSAqLwo+ID4gK8KgwqBmb3IocmV0cnljbnQgPSAwO3JldHJ5Y250IDwgNCAm JiBwYXNzID09Cj4gPiAwO3JldHJ5Y250Kyspe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LyogYWRkIGF0Cj4gPiBWMS4xICovCj4gPiArwqDCoMKgwqBtYXhfcGh5X3ZyZWYgPSAweDA7Cj4g PiArwqDCoMKgwqBwYXNzID0gMDsKPiA+ICvCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZF MDJDMCwweDAwMDAxQzA2KTsKPiA+ICvCoMKgwqDCoGZvcihwaHlfdnJlZiA9IDB4NDA7cGh5X3Zy ZWYgPCAweDgwO3BoeV92cmVmKyspewo+ID4gK8KgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwg MHgxRTZFMDAwQywweDAwMDAwMDAwKTsKPiA+ICvCoMKgwqDCoMKgwqBhc3RfbW91dGR3bShhc3Qs IDB4MUU2RTAwNjAsMHgwMDAwMDAwMCk7Cj4gPiArwqDCoMKgwqDCoMKgYXN0X21vdXRkd20oYXN0 LCAweDFFNkUwMkNDLHBoeV92cmVmIHwgKHBoeV92cmVmIDw8IDgpKTsKPiA+ICvCoMKgwqDCoMKg wqAvKiBGaXJlIERGSSBJbml0ICovCj4gPiArwqDCoMKgwqDCoMKgRG9fRERSUEhZX0luaXQoYXN0 KTsKPiA+ICvCoMKgwqDCoMKgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMEMsMHgwMDAwNUMw MSk7Cj4gPiArwqDCoMKgwqDCoMKgaWYoQ0JSVGVzdF9BU1QyNTAwKGFzdCkpewo+ID4gK8KgwqDC oMKgwqDCoMKgwqBwYXNzKys7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoGRhdGEgPSBhc3RfbWluZHdt KGFzdCwgMHgxRTZFMDNEMCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoGRhdGEyID0gZGF0YSA+PiA4 Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqBkYXRhwqDCoD0gZGF0YSAmIDB4ZmY7Cj4gPiArwqDCoMKg wqDCoMKgwqDCoGlmKGRhdGEgPiBkYXRhMil7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRh ID0gZGF0YTI7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgaWYobWF4X3BoeV92cmVmIDwgZGF0YSl7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqBtYXhf cGh5X3ZyZWYgPSBkYXRhOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgbWluX3BoeV92cmVmID0g cGh5X3ZyZWY7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoH0KPiA+ICvCoMKgwqDCoMKgwqB9ZWxzZSBp ZihwYXNzID4gMCl7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ID4gK8KgwqDCoMKgwqDC oH0KPiA+ICvCoMKgwqDCoH0KPiA+ICvCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAv KiBhZGQgYXQgVjEuMSAqLwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAyQ0MsbWlu X3BoeV92cmVmIHwgKG1pbl9waHlfdnJlZiA8PCA4KSk7Cj4gPiArCj4gPiArwqDCoC8qIFRyYWlu IEREUiBWcmVmIG5leHQgKi8KPiA+ICvCoMKgcGFzcyA9Cj4gPiAwO8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAK PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIGFk ZCBhdCBWMS4xICovCj4gPiArwqDCoGZvcihyZXRyeWNudCA9IDA7cmV0cnljbnQgPCA0ICYmIHBh c3MgPT0KPiA+IDA7cmV0cnljbnQrKyl7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBh ZGQgYXQKPiA+IFYxLjEgKi8KPiA+ICvCoMKgwqDCoG1pbl9kZHJfdnJlZiA9IDB4RkY7Cj4gPiAr wqDCoMKgwqBtYXhfZGRyX3ZyZWYgPSAweDA7Cj4gPiArwqDCoMKgwqBwYXNzID0gMDsKPiA+ICvC oMKgwqDCoGZvcihkZHJfdnJlZiA9IDB4MDA7ZGRyX3ZyZWYgPCAweDQwO2Rkcl92cmVmKyspewo+ ID4gK8KgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAwQywweDAwMDAwMDAwKTsK PiA+ICvCoMKgwqDCoMKgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwNjAsMHgwMDAwMDAwMCk7 Cj4gPiArwqDCoMKgwqDCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMkMwLDB4MDAwMDAwMDYg fCAoZGRyX3ZyZWYgPDwgOCkpOwo+ID4gK8KgwqDCoMKgwqDCoC8qIEZpcmUgREZJIEluaXQgKi8K PiA+ICvCoMKgwqDCoMKgwqBEb19ERFJQSFlfSW5pdChhc3QpOwo+ID4gK8KgwqDCoMKgwqDCoGFz dF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDAwQywweDAwMDA1QzAxKTsKPiA+ICvCoMKgwqDCoMKgwqBp ZihDQlJUZXN0X0FTVDI1MDAoYXN0KSl7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoHBhc3MrKzsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgaWYobWluX2Rkcl92cmVmID4gZGRyX3ZyZWYpewo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgbWluX2Rkcl92cmVmID0gZGRyX3ZyZWY7Cj4gPiArwqDCoMKgwqDCoMKg wqDCoH0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgaWYobWF4X2Rkcl92cmVmIDwgZGRyX3ZyZWYpewo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgbWF4X2Rkcl92cmVmID0gZGRyX3ZyZWY7Cj4gPiArwqDC oMKgwqDCoMKgwqDCoH0KPiA+ICvCoMKgwqDCoMKgwqB9ZWxzZSBpZihwYXNzICE9IDApewo+ID4g K8KgwqDCoMKgwqDCoMKgwqBicmVhazsKPiA+ICvCoMKgwqDCoMKgwqB9Cj4gPiArwqDCoMKgwqB9 Cj4gPiArwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogYWRkIGF0IFYxLjEgKi8K PiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUwMDBDLDB4MDAwMDAwMDApOwo+ID4gK8Kg wqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwNjAsMHgwMDAwMDAwMCk7Cj4gPiArwqDCoGRkcl92 cmVmID0gKG1pbl9kZHJfdnJlZiArIG1heF9kZHJfdnJlZiArIDEpID4+IDE7Cj4gPiArwqDCoGFz dF9tb3V0ZHdtKGFzdCwgMHgxRTZFMDJDMCwweDAwMDAwMDA2IHwgKGRkcl92cmVmIDw8IDgpKTsK PiA+ICsKPiA+ICvCoMKgLyogV2FpdCBERFIgUEhZIGluaXQgZG9uZSAqLwo+ID4gK8KgwqBEb19E RFJQSFlfSW5pdChhc3QpOwo+ID4gKwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAx MjAsZGRyX3RhYmxlW1JFR0lEWF9QTExdKTsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFF NkUwMDBDLDB4NDJBQTVDODEpOwo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTAwMzQs MHgwMDAxQUY5Myk7Cj4gPiArCj4gPiArwqDCoENoZWNrX0RSQU1fU2l6ZShhc3QsIGRkcl90YWJs ZVtSRUdJRFhfUkZDXSk7Cj4gPiArwqDCoEVuYWJsZV9DYWNoZShhc3QpOwo+ID4gK8KgwqBhc3Rf bW91dGR3bShhc3QsIDB4MUU2RTAwMUMsMHgwMDAwMDAwOCk7Cj4gPiArwqDCoGFzdF9tb3V0ZHdt KGFzdCwgMHgxRTZFMDAzOCwweEZGRkZGRjAwKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHUz MiBEUkFNX0luaXRfQVNUMjUwMChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkKPiA+ICt7Cj4gPiAr wqDCoHUzMiBkYXRhOwo+ID4gKwo+ID4gK1NUQVJUX0lOSVQ6Cj4gPiArwqDCoFNldF9NUExMKGFz dCk7Cj4gPiArwqDCoFJlc2V0X01NQyhhc3QpOwo+ID4gK8KgwqBERFJfSW5pdF9Db21tb24oYXN0 KTsKPiA+ICvCoMKgZGF0YSA9IGFzdF9taW5kd20oYXN0LCAweDFFNkUyMDcwKTsKPiA+ICvCoMKg aWYoZGF0YSAmIDB4MDEwMDAwMDApewo+ID4gK8KgwqDCoMKgRERSNF9Jbml0X0FTVDI1MDAoYXN0 LCBkZHI0XzE2MDBfdGltaW5nX3RhYmxlKTsKPiA+ICvCoMKgfWVsc2V7Cj4gPiArwqDCoMKgwqBE RFIzX0luaXRfQVNUMjUwMChhc3QsIGRkcjNfMTYwMF90aW1pbmdfdGFibGUpOwo+ID4gK8KgwqB9 Cj4gPiArwqDCoGlmKCFERFJUZXN0X0FTVDI1MDAoYXN0KSl7wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC8qIGFkZCBhdCBWMS4xICovCj4gPiArwqDCoMKgwqBnb3RvCj4gPiBTVEFSVF9J TklUO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogYWRk IGF0IFYxLjEgKi8KPiA+ICvCoMKgfQo+ID4gK8KgwqBhc3RfbW91dGR3bShhc3QsIDB4MUU2RTIw NDAsIGFzdF9taW5kd20oYXN0LCAweDFFNkUyMDQwKSB8Cj4gPiAweDQxKTsKPiA+ICvCoMKgLyog UGF0Y2ggY29kZSAqLwo+ID4gK8KgwqBkYXRhID0gYXN0X21pbmR3bShhc3QsIDB4MUU2RTIwMEMp ICYgMHhGOUZGRkZGRjsKPiA+ICvCoMKgYXN0X21vdXRkd20oYXN0LCAweDFFNkUyMDBDLCBkYXRh IHwgMHgxMDAwMDAwMCk7Cj4gPiArwqDCoHJldHVybigxKTsKPiA+ICt9Cj4gPiArCj4gPiArc3Rh dGljIHZvaWQgYXN0X2luaXRfZHJhbV8yNTAwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAr ewo+ID4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBkZXYtPmRldl9w cml2YXRlOwo+ID4gK8KgwqDCoMKgwqDCoMKgdTMyIHRlbXA7Cj4gPiArwqDCoMKgwqDCoMKgwqB1 OCByZWc7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqByZWcgPSBhc3RfZ2V0X2luZGV4X3JlZ19t YXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhkMCwKPiA+IDB4ZmYpOwo+ID4gK8KgwqDCoMKg wqDCoMKgaWYgKChyZWcgJiAweDgwKSA9PSAwKSB7LyogdmdhIG9ubHkgKi8KPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPiA+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogQmVsb3cg cGF0Y2ggc2hvdWxkIGJlIGV4ZWN1dGVkIGF0IHRoZSBmaXJzdCB0aW1lCj4gPiBiZWZvcmUgYW55 IGFjY2VzcyB0byBBU1QyNXh4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqLwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIENsZWFyIGJ1cyBsb2NrIGNvbmRpdGlv biAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwK PiA+IDB4MWU2MDAwMDAsMHhBRUVEMUEwMyk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBhZGQgYXQgVjEuMSAqLwo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwKPiA+IDB4MWU2MDAw ODQsMHgwMDAxMDAwMCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBhZGQgYXQgVjEuMSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwKPiA+IDB4MWU2MDAwODgsMHgwMDAwMDAw MCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAvKiBhZGQgYXQgVjEuMSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGFzdF9tb3V0ZHdtKGFzdCwKPiA+IDB4MWU2ZTIwMDAsMHgxNjg4QThBOCk7wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBh ZGQgYXQgVjEuMSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4gKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiA+ICsKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3Rfd3JpdGUzMihhc3QsIDB4ZjAwNCwgMHgxZTZlMDAw MCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X3dyaXRlMzIoYXN0LCAw eGYwMDAsIDB4MSk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXN0X3dyaXRl MzIoYXN0LCAweDEyMDAwLCAweDE2ODhhOGE4KTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkbyB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IHdoaWxlIChhc3Rf cmVhZDMyKGFzdCwgMHgxMjAwMCkgIT0gMHgxKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBhc3Rfd3JpdGUzMihhc3QsIDB4MTAwMDAsIDB4ZmM2MDAzMDkpOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRvIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoH0gd2hpbGUgKGFzdF9yZWFkMzIoYXN0LCAweDEwMDAwKSAhPSAweDEpOwo+ID4g Kwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIFNsb3cgZG93biBDUFUvQUhC IENMSyBpbiBWR0Egb25seSBtb2RlICovCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgdGVtcCA9IGFzdF9yZWFkMzIoYXN0LCAweDEyMDA4KTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB0ZW1wIHw9IDB4NzM7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgYXN0X3dyaXRlMzIoYXN0LCAweDEyMDA4LCB0ZW1wKTsKPiA+ICsKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBSZXNldCBVU0IgcG9ydCB0byBwYXRjaCBVU0IgdW5r bm93biBkZXZpY2UgaXNzdWUKPiA+ICovCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgYXN0X21vdXRkd20oYXN0LCAweDFlNmUyMDkwLCAweDIwMDAwMDAwKTsKPiA+ICvCoMKgwqDC oMKgwqDCoHRlbXDCoMKgPSBhc3RfbWluZHdtKGFzdCwgMHgxZTZlMjA5NCk7Cj4gPiArwqDCoMKg wqDCoMKgwqB0ZW1wIHw9IDB4MDAwMDQwMDA7Cj4gPiArwqDCoMKgwqDCoMKgwqBhc3RfbW91dGR3 bShhc3QsIDB4MWU2ZTIwOTQsIHRlbXApOwo+ID4gK8KgwqDCoMKgwqDCoMKgdGVtcMKgwqA9IGFz dF9taW5kd20oYXN0LCAweDFlNmUyMDcwKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZiAodGVtcCAmIDB4MDA4MDAwMDApCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFz dCwgMHgxZTZlMjA3YywgMHgwMDgwMDAwMCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1kZWxheSgxMDApO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBkZWxheSAxMDBtcyAqLwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzdF9tb3V0ZHdtKGFzdCwgMHgxZTZlMjA3MCwgMHgw MDgwMDAwMCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gKwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoERSQU1fSW5pdF9BU1QyNTAwKGFzdCk7Cj4g PiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVtcCA9IGFzdF9taW5kd20o YXN0LCAweDFlNmUyMDQwKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3Rf bW91dGR3bShhc3QsIDB4MWU2ZTIwNDAsIHRlbXAgfCAweDQwKTsKPiA+ICvCoMKgwqDCoMKgwqDC oH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoC8qIHdhaXQgcmVhZHkgKi8KPiA+ICvCoMKgwqDC oMKgwqDCoGRvIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWcgPSBhc3Rf Z2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwKPiA+IDB4ZDAsIDB4ZmYp Owo+ID4gK8KgwqDCoMKgwqDCoMKgfSB3aGlsZSAoKHJlZyAmIDB4NDApID09IDApOwo+ID4gK30K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaAo+ID4gYi9k cml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaAo+ID4gaW5kZXggMzYwOGQ1YS4uMjRkYTRj MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3RhYmxlcy5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaAo+ID4gQEAgLTQ3LDYgKzQ3LDcg QEAKPiA+IMKgI2RlZmluZSBTeW5jUE7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg KFBWU3luYyB8IE5IU3luYykKPiA+IMKgI2RlZmluZSBTeW5jTlDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgKE5WU3luYyB8IFBIU3luYykKPiA+IMKgI2RlZmluZSBTeW5jTk7CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKE5WU3luYyB8IE5IU3luYykKPiA+ICsjZGVm aW5lIEFTVDI1MDBQcmVDYXRjaENSVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgwMDAwNDAw MAo+ID4gCj4gPiDCoC8qIERDTEsgSW5kZXggKi8KPiA+IMKgI2RlZmluZSBWQ0xLMjVfMTc1wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgwMAo+ID4gQEAgLTEwOCw2 ICsxMDksMzYgQEAKPiA+IMKgwqDCoMKgwqDCoMKgwqB7MHgzYiwgMHgyYywgMHg4MX0swqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAvKgo+ID4gMUE6IFZDTEsxMThfMjXCoMKgwqDCoMKgwqDCoCovCj4gPiDCoH07 Cj4gPiAKPiA+ICtzdGF0aWMgc3RydWN0IGFzdF92Ymlvc19kY2xrX2luZm8gZGNsa190YWJsZV9h c3QyNTAwW10gPSB7Cj4gPiArwqDCoMKgwqDCoMKgwqB7MHgyQywgMHhFNywgMHgwM30swqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAvKgo+ID4gMDA6IFZDTEsyNV8xNzXCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDC oMKgwqDCoMKgwqB7MHg5NSwgMHg2MiwgMHgwM30swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMDE6 IFZDTEsyOF8zMjLCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKgwqB7MHg2NywgMHg2 MywgMHgwMX0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMDI6IFZDTEszMV81wqDCoMKgwqDCoMKg wqDCoMKgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoHsweDc2LCAweDYzLCAweDAxfSzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qCj4gPiAwMzogVkNMSzM2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDC oMKgwqDCoMKgwqB7MHhFRSwgMHg2NywgMHgwMX0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMDQ6 IFZDTEs0MMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4ODIs IDB4NjIsIDB4MDF9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKiAwNToKPiA+IFZDTEs0OV81wqDCoMKgwqDCoMKgwqDCoMKgKi8KPiA+ ICvCoMKgwqDCoMKgwqDCoHsweEM2LCAweDY0LCAweDAxfSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qCj4g PiAwNjogVkNMSzUwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKgwqB7 MHg5NCwgMHg2MiwgMHgwMX0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMDc6IFZDTEs1Nl8yNcKg wqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4ODAsIDB4NjQsIDB4MDB9LMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLyoKPiA+IDA4OiBWQ0xLNjXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKi8K PiA+ICvCoMKgwqDCoMKgwqDCoHsweDdCLCAweDYzLCAweDAwfSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8q Cj4gPiAwOTogVkNMSzc1wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKg wqB7MHg2NywgMHg2MiwgMHgwMH0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMEE6IFZDTEs3OF83 NcKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4N0MsIDB4NjIsIDB4MDB9 LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDBCOiBWQ0xLOTRfNcKgwqDCoMKgwqDCoMKgwqDCoCov Cj4gPiArwqDCoMKgwqDCoMKgwqB7MHg4RSwgMHg2MiwgMHgwMH0swqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAv Kgo+ID4gMEM6IFZDTEsxMDjCoMKgwqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKg wqB7MHg4NSwgMHgyNCwgMHgwMH0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMEQ6IFZDTEsxMzXC oMKgwqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKgwqB7MHg2NywgMHgyMiwgMHgw MH0swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMEU6IFZDTEsxNTdfNcKgwqDCoMKgwqDCoMKgwqAq Lwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4NkEsIDB4MjIsIDB4MDB9LMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LyoKPiA+IDBGOiBWQ0xLMTYywqDCoMKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDC oMKgezB4NGQsIDB4NGMsIDB4ODB9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDEwOiBWQ0xLMTU0 wqDCoMKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4YTcsIDB4NzgsIDB4 ODB9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDExOiBWQ0xLODMuNcKgwqDCoMKgwqDCoMKgwqDC oCovCj4gPiArwqDCoMKgwqDCoMKgwqB7MHgyOCwgMHg0OSwgMHg4MH0swqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAvKgo+ID4gMTI6IFZDTEsxMDYuNcKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDC oMKgezB4MzcsIDB4NDksIDB4ODB9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDEzOiBWQ0xLMTQ2 LjI1wqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4MWYsIDB4NDUsIDB4ODB9 LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDE0OiBWQ0xLMTQ4LjXCoMKgwqDCoMKgwqDCoMKgKi8K PiA+ICvCoMKgwqDCoMKgwqDCoHsweDQ3LCAweDZjLCAweDgwfSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8q Cj4gPiAxNTogVkNMSzcxwqDCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4MjUs IDB4NjUsIDB4ODB9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IDE2OiBWQ0xLODguNzXCoMKgwqDC oCovCj4gPiArwqDCoMKgwqDCoMKgwqB7MHg1OCwgMHgwMSwgMHg0Mn0swqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAvKgo+ID4gMTc6IFZDTEsxMTnCoMKgwqDCoMKgwqAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgezB4 MzIsIDB4NjcsIDB4ODB9LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIDE4Ogo+ID4gVkNMSzg1XzXCoMKgwqDCoMKgKi8K PiA+ICvCoMKgwqDCoMKgwqDCoHsweDZhLCAweDZkLCAweDgwfSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8q Cj4gPiAxOTogVkNMSzk3Xzc1wqDCoMKgwqDCoMKgwqDCoCovCj4gPiArwqDCoMKgwqDCoMKgwqB7 MHg0NCwgMHgyMCwgMHg0M30swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gMUE6IFZDTEsxMThfMjXC oMKgwqDCoMKgwqDCoCovCj4gPiArfTsKPiA+ICsKPiA+IMKgc3RhdGljIHN0cnVjdCBhc3RfdmJp b3Nfc3RkdGFibGUgdmJpb3Nfc3RkdGFibGVbXSA9IHsKPiA+IMKgwqDCoMKgwqDCoMKgwqAvKiBN RF8yXzNfNDAwICovCj4gPiDCoMKgwqDCoMKgwqDCoMKgewo+ID4gQEAgLTI0NCwzMiArMjc1LDMy IEBACj4gPiDCoC8qIDE2OjkgKi8KPiA+IMKgc3RhdGljIHN0cnVjdCBhc3RfdmJpb3NfZW5odGFi bGUgcmVzXzEzNjB4NzY4W10gPSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgezE3OTIsIDEzNjAsIDY0 LDExMiwgNzk1LMKgwqA3NjgsIDMsIDYsIFZDTEs4NV81LMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoK PiA+IDYwSHogKi8KPiA+IC3CoMKgwqDCoMKgwqDCoMKgKFN5bmNQUCB8IENoYXJ4OERvdCB8IExp bmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9kZUluZm8pLCA2MCwgMSwg MHgzOSB9LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqAoU3luY1BQIHwgQ2hhcng4RG90IHwgTGluZUNv bXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8Cj4gPiBOZXdNb2RlSW5mbyB8IEFTVDI1MDBQcmVD YXRjaENSVCksIDYwLCAxLCAweDM5IH0sCj4gPiDCoMKgwqDCoMKgwqDCoMKgezE3OTIsIDEzNjAs IDY0LDExMiwgNzk1LMKgwqA3NjgsIDMsIDYsIFZDTEs4NV81LMKgwqDCoMKgwqDCoMKgwqDCoMKg LyoKPiA+IGVuZCAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgKFN5bmNQUCB8IENoYXJ4OERvdCB8 IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9kZUluZm8pLCAweEZG LCAxLCAweDM5IH0sCj4gPiDCoH07Cj4gPiAKPiA+IMKgc3RhdGljIHN0cnVjdCBhc3RfdmJpb3Nf ZW5odGFibGUgcmVzXzE2MDB4OTAwW10gPSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgezE3NjAsIDE2 MDAsIDQ4LCAzMiwgOTI2LMKgwqA5MDAsIDMsIDUsIFZDTEs5N183NSzCoMKgwqDCoMKgwqDCoMKg LyoKPiA+IDYwSHogQ1ZUIFJCICovCj4gPiAtwqDCoMKgwqDCoMKgwqDCoChTeW5jTlAgfCBDaGFy eDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZv KSwgNjAsIDEsIDB4M0EgfSwKPiA+IC3CoMKgwqDCoMKgwqDCoHsyMTEyLCAxNjAwLCA4OCwxNjgs IDkzNCzCoMKgOTAwLCAzLCA1LCBWQ0xLMTE4XzI1LMKgwqDCoMKgwqDCoMKgLyoKPiA+IDYwSHog Q1ZUICovCj4gPiAtwqDCoMKgwqDCoMKgwqDCoChTeW5jUE4gfCBDaGFyeDhEb3QgfCBMaW5lQ29t cGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvKSwgNjAsIDIsIDB4M0Eg fSwKPiA+IC3CoMKgwqDCoMKgwqDCoHsyMTEyLCAxNjAwLCA4OCwxNjgsIDkzNCzCoMKgOTAwLCAz LCA1LCBWQ0xLMTE4XzI1LMKgwqDCoMKgwqDCoMKgLyoKPiA+IDYwSHogQ1ZUICovCj4gPiAtwqDC oMKgwqDCoMKgwqDCoChTeW5jUE4gfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVT Y3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvKSwgMHhGRiwgMiwgMHgzQSB9LAo+ID4gK8KgwqDC oMKgwqDCoMKgwqAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2Ny ZWVuTW9kZSB8Cj4gPiBOZXdNb2RlSW5mbyB8IEFTVDI1MDBQcmVDYXRjaENSVCksIDYwLCAxLCAw eDNBIH0sCj4gPiArwqDCoMKgwqB7MjExMiwgMTYwMCwgODgsMTY4LCA5MzQswqDCoDkwMCwgMywg NSwgVkNMSzExOF8yNSzCoMKgLyogNjBIeiBDVlQKPiA+ICovCj4gPiArwqDCoMKgwqDCoChTeW5j UE4gfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5l d01vZGVJbmZvKSwgNjAsIDIsIDB4M0EgfSwKPiA+ICvCoMKgwqDCoHsyMTEyLCAxNjAwLCA4OCwx NjgsIDkzNCzCoMKgOTAwLCAzLCA1LCBWQ0xLMTE4XzI1LMKgwqAvKiA2MEh6IENWVAo+ID4gKi8K PiA+ICvCoMKgwqDCoMKgKFN5bmNQTiB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lk ZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9kZUluZm8pLCAweEZGLCAyLCAweDNBIH0sCj4gPiDCoH07 Cj4gPiAKPiA+IMKgc3RhdGljIHN0cnVjdCBhc3RfdmJpb3NfZW5odGFibGUgcmVzXzE5MjB4MTA4 MFtdID0gewo+ID4gwqDCoMKgwqDCoMKgwqDCoHsyMjAwLCAxOTIwLCA4OCwgNDQsIDExMjUsIDEw ODAsIDQsIDUsIFZDTEsxNDhfNSzCoMKgwqDCoMKgwqDCoC8qCj4gPiA2MEh6ICovCj4gPiAtwqDC oMKgwqDCoMKgwqDCoChTeW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVT Y3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvKSwgNjAsIDEsIDB4MzggfSwKPiA+ICvCoMKgwqDC oMKgwqDCoMKgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVl bk1vZGUgfAo+ID4gTmV3TW9kZUluZm8gfCBBU1QyNTAwUHJlQ2F0Y2hDUlQpLCA2MCwgMSwgMHgz OCB9LAo+ID4gwqDCoMKgwqDCoMKgwqDCoHsyMjAwLCAxOTIwLCA4OCwgNDQsIDExMjUsIDEwODAs IDQsIDUsIFZDTEsxNDhfNSzCoMKgwqDCoMKgwqDCoC8qCj4gPiA2MEh6ICovCj4gPiAtwqDCoMKg wqDCoMKgwqDCoChTeW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3Jl ZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvKSwgMHhGRiwgMSwgMHgzOCB9LAo+ID4gK8KgwqDCoMKg wqDCoMKgwqAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVu TW9kZSB8Cj4gPiBOZXdNb2RlSW5mbyB8IEFTVDI1MDBQcmVDYXRjaENSVCksIDB4RkYsIDEsIDB4 MzggfSwKPiA+IMKgfTsKPiA+IAo+ID4gCj4gPiDCoC8qIDE2OjEwICovCj4gPiDCoHN0YXRpYyBz dHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xMjgweDgwMFtdID0gewo+ID4gwqDCoMKgwqDC oMKgwqDCoHsxNDQwLCAxMjgwLCA0OCwgMzIswqDCoDgyMyzCoMKgODAwLCAzLCA2LCBWQ0xLNzEs wqDCoC8qIDYwSHogUkIKPiA+ICovCj4gPiAtwqDCoMKgwqDCoMKgwqDCoChTeW5jTlAgfCBDaGFy eDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZv KSwgNjAsIDEsIDB4MzUgfSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgKFN5bmNOUCB8IENoYXJ4OERv dCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9kZUluZm8gfCBB U1QyNTAwUHJlQ2F0Y2hDUlQpLCA2MCwgMSwgMHgzNSB9LAo+ID4gwqDCoMKgwqDCoMKgwqDCoHsx NjgwLCAxMjgwLCA3MiwxMjgswqDCoDgzMSzCoMKgODAwLCAzLCA2LCBWQ0xLODNfNSzCoMKgwqDC oMKgwqDCoMKgLyoKPiA+IDYwSHogKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoChTeW5jUE4gfCBD aGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJ bmZvKSwgNjAsIDIsIDB4MzUgfSwKPiA+IMKgwqDCoMKgwqDCoMKgwqB7MTY4MCwgMTI4MCwgNzIs MTI4LMKgwqA4MzEswqDCoDgwMCwgMywgNiwgVkNMSzgzXzUswqDCoMKgwqDCoMKgwqDCoC8qCj4g PiA2MEh6ICovCj4gPiBAQCAtMjc5LDcgKzMxMCw3IEBACj4gPiAKPiA+IMKgc3RhdGljIHN0cnVj dCBhc3RfdmJpb3NfZW5odGFibGUgcmVzXzE0NDB4OTAwW10gPSB7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgezE2MDAsIDE0NDAsIDQ4LCAzMizCoMKgOTI2LMKgwqA5MDAsIDMsIDYsIFZDTEs4OF83NSzC oMKgwqDCoMKgwqDCoC8qCj4gPiA2MEh6IFJCICovCj4gPiAtwqDCoMKgwqDCoMKgwqDCoChTeW5j TlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5l d01vZGVJbmZvKSwgNjAsIDEsIDB4MzYgfSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgKFN5bmNOUCB8 IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9k ZUluZm8gfCBBU1QyNTAwUHJlQ2F0Y2hDUlQpLCA2MCwgMSwgMHgzNiB9LAo+ID4gwqDCoMKgwqDC oMKgwqDCoHsxOTA0LCAxNDQwLCA4MCwxNTIswqDCoDkzNCzCoMKgOTAwLCAzLCA2LCBWQ0xLMTA2 XzUswqDCoMKgwqDCoMKgwqAvKgo+ID4gNjBIeiAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgKFN5 bmNQTiB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfAo+ID4g TmV3TW9kZUluZm8pLCA2MCwgMiwgMHgzNiB9LAo+ID4gwqDCoMKgwqDCoMKgwqDCoHsxOTA0LCAx NDQwLCA4MCwxNTIswqDCoDkzNCzCoMKgOTAwLCAzLCA2LCBWQ0xLMTA2XzUswqDCoMKgwqDCoMKg wqAvKgo+ID4gNjBIeiAqLwo+ID4gQEAgLTI4OCw3ICszMTksNyBAQAo+ID4gCj4gPiDCoHN0YXRp YyBzdHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xNjgweDEwNTBbXSA9IHsKPiA+IMKgwqDC oMKgwqDCoMKgwqB7MTg0MCwgMTY4MCwgNDgsIDMyLCAxMDgwLCAxMDUwLCAzLCA2LCBWQ0xLMTE5 LCAvKiA2MEh6IFJCCj4gPiAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgwqAoU3luY05QIHwgQ2hhcng4 RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8Cj4gPiBOZXdNb2RlSW5mbyks IDYwLCAxLCAweDM3IH0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoChTeW5jTlAgfCBDaGFyeDhEb3Qg fCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvIHwgQVNU MjUwMFByZUNhdGNoQ1JUKSwgNjAsIDEsIDB4MzcgfSwKPiA+IMKgwqDCoMKgwqDCoMKgwqB7MjI0 MCwgMTY4MCwxMDQsMTc2LCAxMDg5LCAxMDUwLCAzLCA2LCBWQ0xLMTQ2XzI1LMKgwqDCoMKgwqDC oC8qCj4gPiA2MEh6ICovCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAoU3luY1BOIHwgQ2hhcng4RG90 IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8Cj4gPiBOZXdNb2RlSW5mbyksIDYw LCAyLCAweDM3IH0sCj4gPiDCoMKgwqDCoMKgwqDCoMKgezIyNDAsIDE2ODAsMTA0LDE3NiwgMTA4 OSwgMTA1MCwgMywgNiwgVkNMSzE0Nl8yNSzCoMKgwqDCoMKgwqAvKgo+ID4gNjBIeiAqLwo+ID4g QEAgLTI5Nyw5ICszMjgsOSBAQAo+ID4gCj4gPiDCoHN0YXRpYyBzdHJ1Y3QgYXN0X3ZiaW9zX2Vu aHRhYmxlIHJlc18xOTIweDEyMDBbXSA9IHsKPiA+IMKgwqDCoMKgwqDCoMKgwqB7MjA4MCwgMTky MCwgNDgsIDMyLCAxMjM1LCAxMjAwLCAzLCA2LCBWQ0xLMTU0LCAvKiA2MEh6Cj4gPiBSQiovCj4g PiAtwqDCoMKgwqDCoMKgwqDCoChTeW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8 IFdpZGVTY3JlZW5Nb2RlIHwKPiA+IE5ld01vZGVJbmZvKSwgNjAsIDEsIDB4MzQgfSwKPiA+ICvC oMKgwqDCoMKgwqDCoMKgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lk ZVNjcmVlbk1vZGUgfAo+ID4gTmV3TW9kZUluZm8gfCBBU1QyNTAwUHJlQ2F0Y2hDUlQpLCA2MCwg MSwgMHgzNCB9LAo+ID4gwqDCoMKgwqDCoMKgwqDCoHsyMDgwLCAxOTIwLCA0OCwgMzIsIDEyMzUs IDEyMDAsIDMsIDYsIFZDTEsxNTQsIC8qIDYwSHogUkIKPiA+ICovCj4gPiAtwqDCoMKgwqDCoMKg wqDCoChTeW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2Rl IHwKPiA+IE5ld01vZGVJbmZvKSwgMHhGRiwgMSwgMHgzNCB9LAo+ID4gK8KgwqDCoMKgwqDCoMKg wqAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8 Cj4gPiBOZXdNb2RlSW5mbyB8IEFTVDI1MDBQcmVDYXRjaENSVCksIDB4RkYsIDEsIDB4MzQgfSwK PiA+IMKgfTsKPiA+IAo+ID4gwqAjZW5kaWYKPiA+IC0tCj4gPiAxLjguMy4xCj4gPiAKPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2 ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJp LWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==