From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH 4/5] nvc0: refactor TIC uploads to allow different specifies per generation Date: Mon, 17 Oct 2016 11:46:11 +0200 Message-ID: <2183f35a-731b-fe0c-e090-45315390a48d@gmail.com> References: <1476645274-9939-1-git-send-email-imirkin@alum.mit.edu> <1476645274-9939-4-git-send-email-imirkin@alum.mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1476645274-9939-4-git-send-email-imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ilia Mirkin , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org RmV3IGNvbW1lbnRzIGJlbG93LgoKT24gMTAvMTYvMjAxNiAwOToxNCBQTSwgSWxpYSBNaXJraW4g d3JvdGU6Cj4gVGhpcyBmbGlwcyBHTTEweCB0byB1c2luZyB0aGUgdXBkYXRlZCBmb3JtYXQsIHdo aWNoIGlzIHdoYXQgSSB0ZXN0ZWQKPiB3aXRoLiBIb3dldmVyIEdNMjB4IGFuZCBHUDEweCBhbHNv IHVzZSB0aGlzIFRJQyBmb3JtYXQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBJbGlhIE1pcmtpbiA8aW1p cmtpbkBhbHVtLm1pdC5lZHU+Cj4gLS0tCj4gIHNyYy9udmMwX2FjY2VsLmMgfCAxMSArKysrKysr KysrCj4gIHNyYy9udmMwX2FjY2VsLmggfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIHNyYy9udmMwX2V4YS5jICAgfCAyMiArKysrLS0tLS0tLS0t LS0tLS0tCj4gIHNyYy9udmMwX3h2LmMgICAgfCA2NyArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDkzIGlu c2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9udmMwX2Fj Y2VsLmMgYi9zcmMvbnZjMF9hY2NlbC5jCj4gaW5kZXggMDY4MjgwNi4uOGRhNTA1MSAxMDA2NDQK PiAtLS0gYS9zcmMvbnZjMF9hY2NlbC5jCj4gKysrIGIvc3JjL252YzBfYWNjZWwuYwo+IEBAIC0z MjIsNiArMzIyLDE3IEBAIE5WQWNjZWxJbml0M0RfTlZDMChTY3JuSW5mb1B0ciBwU2NybikKPiAg CQlQVVNIX0RBVEEgKHB1c2gsIChiby0+b2Zmc2V0ICsgTUlTQ19PRkZTRVQpID4+IDMyKTsKPiAg CQlQVVNIX0RBVEEgKHB1c2gsIChiby0+b2Zmc2V0ICsgTUlTQ19PRkZTRVQpKTsKPiAgCQlQVVNI X0RBVEEgKHB1c2gsIDEpOwo+ICsJfSBlbHNlIHsKPiArCQkvKiBVc2UgbmV3IFRJQyBmb3JtYXQu IE5vdCBzdHJpY3RseSBuZWNlc3NhcnkgZm9yIEdNMjB4KyAqLwoKWWVzLCBidXQgaXQncyBhbHNv IGVuYWJsZWQgYnkgZGVmYXVsdCBpbiBtZXNhLCBsb29rcyBmaW5lLgoKPiArCQlJTU1FRF9OVkMw KHB1c2gsIFNVQkNfM0QoMHgwZjEwKSwgMSk7Cj4gKwkJaWYgKHBOdi0+ZGV2LT5jaGlwc2V0ID49 IDB4MTIwKSB7Cj4gKwkJCS8qIFVzZSBjZW50ZXIgc2FtcGxlIGxvY2F0aW9ucy4gKi8KPiArCQkJ QkVHSU5fTlZDMChwdXNoLCBTVUJDXzNEKDB4MTFlMCksIDQpOwo+ICsJCQlQVVNIX0RBVEEgKHB1 c2gsIDB4ODg4ODg4ODgpOwo+ICsJCQlQVVNIX0RBVEEgKHB1c2gsIDB4ODg4ODg4ODgpOwo+ICsJ CQlQVVNIX0RBVEEgKHB1c2gsIDB4ODg4ODg4ODgpOwo+ICsJCQlQVVNIX0RBVEEgKHB1c2gsIDB4 ODg4ODg4ODgpOwo+ICsJCX0KPiAgCX0KPgo+ICAJQkVHSU5fTlZDMChwdXNoLCBOVkMwXzNEKENP REVfQUREUkVTU19ISUdIKSwgMik7Cj4gZGlmZiAtLWdpdCBhL3NyYy9udmMwX2FjY2VsLmggYi9z cmMvbnZjMF9hY2NlbC5oCj4gaW5kZXggNjA3ZTk3Yi4uOTM3ODIzNiAxMDA2NDQKPiAtLS0gYS9z cmMvbnZjMF9hY2NlbC5oCj4gKysrIGIvc3JjL252YzBfYWNjZWwuaAo+IEBAIC03LDYgKzcsNyBA QAo+ICAjaW5jbHVkZSAiaHdkZWZzL252YzBfbTJtZi54bWwuaCIKPiAgI2luY2x1ZGUgImh3ZGVm cy9udjUwX2RlZnMueG1sLmgiCj4gICNpbmNsdWRlICJod2RlZnMvbnY1MF90ZXh0dXJlLmgiCj4g KyNpbmNsdWRlICJod2RlZnMvZ20xMDdfdGV4dHVyZS54bWwuaCIKPiAgI2luY2x1ZGUgImh3ZGVm cy9udl8zZGRlZnMueG1sLmgiCj4KPiAgLyogc3ViY2hhbm5lbCBhc3NpZ25tZW50cywgY29tcGF0 aWJsZSB3aXRoIGtlcGxlcidzIGZpeGVkIGxheW91dCAgKi8KPiBAQCAtMTA4LDQgKzEwOSw1OSBA QCBQVVNIX0RBVEF1KHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKnB1c2gsIHN0cnVjdCBub3V2ZWF1 X2JvICpibywKPiAgCX0KPiAgfQo+Cj4gK3N0YXRpYyBfX2lubGluZV9fIHZvaWQKPiArUFVTSF9U SUMoc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqcHVzaCwgc3RydWN0IG5vdXZlYXVfYm8gKmJvLCB1 bnNpZ25lZCBvZmZzZXQsCj4gKwkgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5z aWduZWQgcGl0Y2gsIHVuc2lnbmVkIGZvcm1hdCkKPiArewo+ICsJaWYgKHB1c2gtPmNsaWVudC0+ ZGV2aWNlLT5jaGlwc2V0IDwgMHgxMTApIHsKPiArCQl1bnNpZ25lZCB0aWMyID0gMHhkMDAwMTAw MDsKPiArCQlpZiAocGl0Y2ggPT0gMCkKPiArCQkJdGljMiB8PSAweDAwMDA0MDAwOwo+ICsJCWVs c2UKPiArCQkJdGljMiB8PSAweDAwMDVjMDAwOwo+ICsJCVBVU0hfREFUQShwdXNoLCBmb3JtYXQp Owo+ICsJCVBVU0hfREFUQShwdXNoLCBiby0+b2Zmc2V0ICsgb2Zmc2V0KTsKPiArCQlQVVNIX0RB VEEocHVzaCwgKChiby0+b2Zmc2V0ICsgb2Zmc2V0KSA+PiAzMikgfAo+ICsJCQkgICAgICAgIChi by0+Y29uZmlnLm52YzAudGlsZV9tb2RlIDw8IDE4KSB8Cj4gKwkJCSAgICAgICAgdGljMik7Cj4g KwkJUFVTSF9EQVRBKHB1c2gsIDB4MDAzMDAwMDApOwo+ICsJCVBVU0hfREFUQShwdXNoLCAweDgw MDAwMDAwIHwgd2lkdGgpOwo+ICsJCVBVU0hfREFUQShwdXNoLCAweDAwMDEwMDAwIHwgaGVpZ2h0 KTsKPiArCQlQVVNIX0RBVEEgKHB1c2gsIDB4MDMwMDAwMDApOwo+ICsJCVBVU0hfREFUQSAocHVz aCwgMHgwMDAwMDAwMCk7CgpDb3NtZXRpYy4KCj4gKwl9IGVsc2Ugewo+ICsJCXVuc2lnbmVkIHRp bGVfbW9kZSA9IGJvLT5jb25maWcubnZjMC50aWxlX21vZGU7Cj4gKwkJUFVTSF9EQVRBKHB1c2gs IChmb3JtYXQgJiAweDNmKSB8ICgoZm9ybWF0ICYgfjB4M2YpIDw8IDEpKTsKPiArCQlQVVNIX0RB VEEocHVzaCwgYm8tPm9mZnNldCArIG9mZnNldCk7Cj4gKwkJaWYgKHBpdGNoID09IDApIHsKPiAr CQkJUFVTSF9EQVRBKHB1c2gsICgoYm8tPm9mZnNldCArIG9mZnNldCkgPj4gMzIpIHwKPiArCQkJ CSAgR00xMDdfVElDMl8yX0hFQURFUl9WRVJTSU9OX0JMT0NLTElORUFSKTsKPiArCQkJUFVTSF9E QVRBKHB1c2gsIEdNMTA3X1RJQzJfM19MT0RfQU5JU09fUVVBTElUWV8yIHwKPiArCQkJCSAgKHRp bGVfbW9kZSAmIDB4MDA3KSB8Cj4gKwkJCQkgICh0aWxlX21vZGUgJiAweDA3MCA+PiAoNCAtIDMp KSB8Cj4gKwkJCQkgICh0aWxlX21vZGUgJiAweDcwMCA+PiAoOCAtIDYpKSk7Cj4gKwkJCVBVU0hf REFUQShwdXNoLCBHTTEwN19USUMyXzRfU0VDVE9SX1BST01PVElPTl9QUk9NT1RFX1RPXzJfViB8 Cj4gKwkJCQkgIEdNMTA3X1RJQzJfNF9CT1JERVJfU0laRV9TQU1QTEVSX0NPTE9SIHwKPiArCQkJ CSAgR00xMDdfVElDMl80X1RFWFRVUkVfVFlQRV9UV09fRCB8Cj4gKwkJCQkgICh3aWR0aCAtIDEp KTsKPiArCQkJUFVTSF9EQVRBKHB1c2gsIEdNMTA3X1RJQzJfNV9OT1JNQUxJWkVEX0NPT1JEUyB8 Cj4gKwkJCQkgICAgICAgICgoaGVpZ2h0IC0gMSkgJiAweGZmZmYpKTsKPiArCQkJUFVTSF9EQVRB KHB1c2gsIEdNMTA3X1RJQzJfNl9BTklTT19GSU5FX1NQUkVBRF9GVU5DX1RXTyB8Cj4gKwkJCQkg ICAgICAgIEdNMTA3X1RJQzJfNl9BTklTT19DT0FSU0VfU1BSRUFEX0ZVTkNfT05FKTsKPiArCQkJ UFVTSF9EQVRBKHB1c2gsIDB4MDAwMDAwMDApOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCVBVU0hfREFU QShwdXNoLCAoKGJvLT5vZmZzZXQgKyBvZmZzZXQpID4+IDMyKSB8Cj4gKwkJCQkgICAgICAgIEdN MTA3X1RJQzJfMl9IRUFERVJfVkVSU0lPTl9QSVRDSCk7Cj4gKwkJCVBVU0hfREFUQShwdXNoLCBH TTEwN19USUMyXzNfTE9EX0FOSVNPX1FVQUxJVFlfMiB8Cj4gKwkJCQkgICAgICAgIChwaXRjaCA+ PiA1KSk7Cj4gKwkJCVBVU0hfREFUQShwdXNoLCBHTTEwN19USUMyXzRfQk9SREVSX1NJWkVfU0FN UExFUl9DT0xPUiB8Cj4gKwkJCQkgIEdNMTA3X1RJQzJfNF9URVhUVVJFX1RZUEVfVFdPX0RfTk9f TUlQTUFQIHwKPiArCQkJCSAgKHdpZHRoIC0gMSkpOwo+ICsJCQlQVVNIX0RBVEEocHVzaCwgR00x MDdfVElDMl81X05PUk1BTElaRURfQ09PUkRTIHwgKGhlaWdodCAtIDEpKTsKPiArCQkJUFVTSF9E QVRBKHB1c2gsIDB4MDAwMDAwMDAwKTsKPiArCQkJUFVTSF9EQVRBKHB1c2gsIDB4MDAwMDAwMDAw KTsKPiArCQl9Cj4gKwl9Cj4gK30KPiArCj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9zcmMvbnZj MF9leGEuYyBiL3NyYy9udmMwX2V4YS5jCj4gaW5kZXggYTUzZGZlNi4uYzhhY2U5NyAxMDA2NDQK PiAtLS0gYS9zcmMvbnZjMF9leGEuYwo+ICsrKyBiL3NyYy9udmMwX2V4YS5jCj4gQEAgLTUzOCwx NCArNTM4LDggQEAgTlZDMEVYQVBpY3RTb2xpZChOVlB0ciBwTnYsIFBpY3R1cmVQdHIgcHBpY3Qs IHVuc2lnbmVkIHVuaXQpCj4gIAlQVVNIX0RBVEF1KHB1c2gsIHBOdi0+c2NyYXRjaCwgU09MSUQo dW5pdCksIDEpOwo+ICAJUFVTSF9EQVRBIChwdXNoLCBwcGljdC0+cFNvdXJjZVBpY3QtPnNvbGlk RmlsbC5jb2xvcik7Cj4gIAlQVVNIX0RBVEF1KHB1c2gsIHBOdi0+c2NyYXRjaCwgVElDX09GRlNF VCArICh1bml0ICogMzIpLCA4KTsKPiAtCVBVU0hfREFUQSAocHVzaCwgXyhCX0MwLCBHX0MxLCBS X0MyLCBBX0MzLCA4XzhfOF84KSk7Cj4gLQlQVVNIX0RBVEEgKHB1c2gsICBvZmZzZXQpOwo+IC0J UFVTSF9EQVRBIChwdXNoLCAob2Zmc2V0ID4+IDMyKSB8IDB4ZDAwNWQwMDApOwo+IC0JUFVTSF9E QVRBIChwdXNoLCAweDAwMzAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgMHgwMDAwMDAwMSk7 Cj4gLQlQVVNIX0RBVEEgKHB1c2gsIDB4MDAwMTAwMDEpOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAw eDAzMDAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgMHgwMDAwMDAwMCk7Cj4gKwlQVVNIX1RJ QyAgKHB1c2gsIHBOdi0+c2NyYXRjaCwgU09MSUQodW5pdCksIDEsIDEsIDQsCj4gKwkJICAgXyhC X0MwLCBHX0MxLCBSX0MyLCBBX0MzLCA4XzhfOF84KSk7Cj4gIAlQVVNIX0RBVEF1KHB1c2gsIHBO di0+c2NyYXRjaCwgVFNDX09GRlNFVCArICh1bml0ICogMzIpLCA4KTsKPiAgCVBVU0hfREFUQSAo cHVzaCwgTlY1MFRTQ18xXzBfV1JBUFNfUkVQRUFUIHwKPiAgCQkJIE5WNTBUU0NfMV8wX1dSQVBU X1JFUEVBVCB8Cj4gQEAgLTY1MSwxNiArNjQ1LDggQEAgTlZDMEVYQVBpY3RUZXh0dXJlKE5WUHRy IHBOdiwgUGl4bWFwUHRyIHBwaXgsIFBpY3R1cmVQdHIgcHBpY3QsIHVuc2lnbmVkIHVuaXQpCj4K PiAgCVBVU0hfUkVGTiAocHVzaCwgYm8sIE5PVVZFQVVfQk9fVlJBTSB8IE5PVVZFQVVfQk9fUkQp Owo+ICAJUFVTSF9EQVRBdShwdXNoLCBwTnYtPnNjcmF0Y2gsIFRJQ19PRkZTRVQgKyAodW5pdCAq IDMyKSwgOCk7Cj4gLQlQVVNIX0RBVEEgKHB1c2gsIGZvcm1hdCk7Cj4gLQlQVVNIX0RBVEEgKHB1 c2gsIGJvLT5vZmZzZXQpOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAoYm8tPm9mZnNldCA+PiAzMikg fAo+IC0JCQkgKGJvLT5jb25maWcubnZjMC50aWxlX21vZGUgPDwgMTgpIHwKPiAtCQkJIDB4ZDAw MDUwMDApOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAweDAwMzAwMDAwKTsKPiAtCVBVU0hfREFUQSAo cHVzaCwgKDEgPDwgMzEpIHwgcHBpeC0+ZHJhd2FibGUud2lkdGgpOwo+IC0JUFVTSF9EQVRBIChw dXNoLCAoMSA8PCAxNikgfCBwcGl4LT5kcmF3YWJsZS5oZWlnaHQpOwo+IC0JUFVTSF9EQVRBIChw dXNoLCAweDAzMDAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgMHgwMDAwMDAwMCk7Cj4gKwlQ VVNIX1RJQyAgKHB1c2gsIGJvLCAwLCBwcGl4LT5kcmF3YWJsZS53aWR0aCwgcHBpeC0+ZHJhd2Fi bGUuaGVpZ2h0LCAwLAo+ICsJCSAgIGZvcm1hdCk7Cj4KPiAgCVBVU0hfREFUQXUocHVzaCwgcE52 LT5zY3JhdGNoLCBUU0NfT0ZGU0VUICsgKHVuaXQgKiAzMiksIDgpOwo+ICAJaWYgKHBwaWN0LT5y ZXBlYXQpIHsKPiBkaWZmIC0tZ2l0IGEvc3JjL252YzBfeHYuYyBiL3NyYy9udmMwX3h2LmMKPiBp bmRleCAxMjljNTA1Li5jM2U1OGRhIDEwMDY0NAo+IC0tLSBhL3NyYy9udmMwX3h2LmMKPiArKysg Yi9zcmMvbnZjMF94di5jCj4gQEAgLTc0LDcgKzc0LDYgQEAgbnZjMF94dl9pbWFnZV9wdXQoU2Ny bkluZm9QdHIgcFNjcm4sCj4gIAkJeyBkc3QsIE5PVVZFQVVfQk9fVlJBTSB8IE5PVVZFQVVfQk9f V1IgfSwKPiAgCX07Cj4gIAlzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICpwdXNoID0gcE52LT5wdXNo YnVmOwo+IC0JdWludDMyX3QgbW9kZSA9IDB4ZDAwMDUwMDAgfCAoc3JjLT5jb25maWcubnZjMC50 aWxlX21vZGUgPDwgMTgpOwo+ICAJZmxvYXQgWDEsIFgyLCBZMSwgWTI7Cj4gIAlCb3hQdHIgcGJv eDsKPiAgCWludCBuYm94Owo+IEBAIC0xMDUsNzEgKzEwNCw0OSBAQCBudmMwX3h2X2ltYWdlX3B1 dChTY3JuSW5mb1B0ciBwU2NybiwKPgo+ICAJUFVTSF9EQVRBdShwdXNoLCBwTnYtPnNjcmF0Y2gs IFRJQ19PRkZTRVQsIDE2KTsKPiAgCWlmIChpZCA9PSBGT1VSQ0NfWVYxMiB8fCBpZCA9PSBGT1VS Q0NfSTQyMCkgewo+IC0JUFVTSF9EQVRBIChwdXNoLCBOVjUwVElDXzBfMF9NQVBBX0MwIHwgTlY1 MFRJQ18wXzBfVFlQRUFfVU5PUk0gfAo+ICsJCVBVU0hfVElDKHB1c2gsIHNyYywgcGFja2VkX3ks IHdpZHRoLCBoZWlnaHQsIDAsCj4gKwkJCSBOVjUwVElDXzBfMF9NQVBBX0MwIHwgTlY1MFRJQ18w XzBfVFlQRUFfVU5PUk0gfAo+ICAJCQkgTlY1MFRJQ18wXzBfTUFQQl9aRVJPIHwgTlY1MFRJQ18w XzBfVFlQRUJfVU5PUk0gfAo+ICAJCQkgTlY1MFRJQ18wXzBfTUFQR19aRVJPIHwgTlY1MFRJQ18w XzBfVFlQRUdfVU5PUk0gfAo+ICAJCQkgTlY1MFRJQ18wXzBfTUFQUl9aRVJPIHwgTlY1MFRJQ18w XzBfVFlQRVJfVU5PUk0gfAo+ICAJCQkgTlY1MFRJQ18wXzBfRk1UXzgpOwo+IC0JUFVTSF9EQVRB IChwdXNoLCAoKHNyYy0+b2Zmc2V0ICsgcGFja2VkX3kpKSk7Cj4gLQlQVVNIX0RBVEEgKHB1c2gs ICgoc3JjLT5vZmZzZXQgKyBwYWNrZWRfeSkgPj4gMzIpIHwgbW9kZSk7Cj4gLQlQVVNIX0RBVEEg KHB1c2gsIDB4MDAzMDAwMDApOwo+IC0JUFVTSF9EQVRBIChwdXNoLCB3aWR0aCk7Cj4gLQlQVVNI X0RBVEEgKHB1c2gsICgxIDw8IE5WNTBUSUNfMF81X0RFUFRIX1NISUZUKSB8IGhlaWdodCk7Cj4g LQlQVVNIX0RBVEEgKHB1c2gsIDB4MDMwMDAwMDApOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAweDAw MDAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgTlY1MFRJQ18wXzBfTUFQQV9DMSB8IE5WNTBU SUNfMF8wX1RZUEVBX1VOT1JNIHwKPiArCQlQVVNIX1RJQyhwdXNoLCBzcmMsIHV2LCB3aWR0aCA+ PiAxLCBoZWlnaHQgPj4gMSwgMCwKCkF0IGZpcnN0IGxvb2ssIHRoaXMgc2VlbXMgd3JvbmcuIFdo eSBkbyB5b3Ugc2hpZnQgd2lkdGgvaGVpZ2h0IGhlcmU/Cgo+ICsJCQkgTlY1MFRJQ18wXzBfTUFQ QV9DMSB8IE5WNTBUSUNfMF8wX1RZUEVBX1VOT1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUEJf QzAgfCBOVjUwVElDXzBfMF9UWVBFQl9VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBHX1pF Uk8gfCBOVjUwVElDXzBfMF9UWVBFR19VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBSX1pF Uk8gfCBOVjUwVElDXzBfMF9UWVBFUl9VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9GTVRfOF84 KTsKPiAtCVBVU0hfREFUQSAocHVzaCwgKChzcmMtPm9mZnNldCArIHV2KSkpOwo+IC0JUFVTSF9E QVRBIChwdXNoLCAoKHNyYy0+b2Zmc2V0ICsgdXYpID4+IDMyKSB8IG1vZGUpOwo+IC0JUFVTSF9E QVRBIChwdXNoLCAweDAwMzAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgd2lkdGggPj4gMSk7 Cj4gLQlQVVNIX0RBVEEgKHB1c2gsICgxIDw8IE5WNTBUSUNfMF81X0RFUFRIX1NISUZUKSB8ICho ZWlnaHQgPj4gMSkpOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAweDAzMDAwMDAwKTsKPiAtCVBVU0hf REFUQSAocHVzaCwgMHgwMDAwMDAwMCk7Cj4gIAl9IGVsc2Ugewo+IC0JaWYgKGlkID09IEZPVVJD Q19VWVZZKSB7Cj4gLQlQVVNIX0RBVEEgKHB1c2gsIE5WNTBUSUNfMF8wX01BUEFfQzEgfCBOVjUw VElDXzBfMF9UWVBFQV9VTk9STSB8Cj4gKwkJdW5zaWduZWQgZm9ybWF0Owo+ICsJCWlmIChpZCA9 PSBGT1VSQ0NfVVlWWSkgewo+ICsJCWZvcm1hdCA9IE5WNTBUSUNfMF8wX01BUEFfQzEgfCBOVjUw VElDXzBfMF9UWVBFQV9VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBCX1pFUk8gfCBOVjUw VElDXzBfMF9UWVBFQl9VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBHX1pFUk8gfCBOVjUw VElDXzBfMF9UWVBFR19VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBSX1pFUk8gfCBOVjUw VElDXzBfMF9UWVBFUl9VTk9STSB8Cj4gLQkJCSBOVjUwVElDXzBfMF9GTVRfOF84KTsKPiAtCX0g ZWxzZSB7Cj4gLQlQVVNIX0RBVEEgKHB1c2gsIE5WNTBUSUNfMF8wX01BUEFfQzAgfCBOVjUwVElD XzBfMF9UWVBFQV9VTk9STSB8Cj4gKwkJCSBOVjUwVElDXzBfMF9GTVRfOF84Owo+ICsJCX0gZWxz ZSB7Cj4gKwkJZm9ybWF0ID0gTlY1MFRJQ18wXzBfTUFQQV9DMCB8IE5WNTBUSUNfMF8wX1RZUEVB X1VOT1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUEJfWkVSTyB8IE5WNTBUSUNfMF8wX1RZUEVC X1VOT1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUEdfWkVSTyB8IE5WNTBUSUNfMF8wX1RZUEVH X1VOT1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUFJfWkVSTyB8IE5WNTBUSUNfMF8wX1RZUEVS X1VOT1JNIHwKPiAtCQkJIE5WNTBUSUNfMF8wX0ZNVF84XzgpOwo+IC0JfQo+IC0JUFVTSF9EQVRB IChwdXNoLCAoKHNyYy0+b2Zmc2V0ICsgcGFja2VkX3kpKSk7Cj4gLQlQVVNIX0RBVEEgKHB1c2gs ICgoc3JjLT5vZmZzZXQgKyBwYWNrZWRfeSkgPj4gMzIpIHwgbW9kZSk7Cj4gLQlQVVNIX0RBVEEg KHB1c2gsIDB4MDAzMDAwMDApOwo+IC0JUFVTSF9EQVRBIChwdXNoLCB3aWR0aCk7Cj4gLQlQVVNI X0RBVEEgKHB1c2gsICgxIDw8IE5WNTBUSUNfMF81X0RFUFRIX1NISUZUKSB8IGhlaWdodCk7Cj4g LQlQVVNIX0RBVEEgKHB1c2gsIDB4MDMwMDAwMDApOwo+IC0JUFVTSF9EQVRBIChwdXNoLCAweDAw MDAwMDAwKTsKPiAtCWlmIChpZCA9PSBGT1VSQ0NfVVlWWSkgewo+IC0JUFVTSF9EQVRBIChwdXNo LCBOVjUwVElDXzBfMF9NQVBBX0MyIHwgTlY1MFRJQ18wXzBfVFlQRUFfVU5PUk0gfAo+ICsJCQkg TlY1MFRJQ18wXzBfRk1UXzhfODsKPiArCQl9Cj4gKwkJUFVTSF9USUMocHVzaCwgc3JjLCBwYWNr ZWRfeSwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0KTsKPiArCj4gKwkJaWYgKGlkID09IEZPVVJD Q19VWVZZKSB7Cj4gKwkJZm9ybWF0ID0gTlY1MFRJQ18wXzBfTUFQQV9DMiB8IE5WNTBUSUNfMF8w X1RZUEVBX1VOT1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUEJfQzAgfCBOVjUwVElDXzBfMF9U WVBFQl9VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBHX1pFUk8gfCBOVjUwVElDXzBfMF9U WVBFR19VTk9STSB8Cj4gIAkJCSBOVjUwVElDXzBfMF9NQVBSX1pFUk8gfCBOVjUwVElDXzBfMF9U WVBFUl9VTk9STSB8Cj4gLQkJCSBOVjUwVElDXzBfMF9GTVRfOF84XzhfOCk7Cj4gLQl9IGVsc2Ug ewo+IC0JUFVTSF9EQVRBIChwdXNoLCBOVjUwVElDXzBfMF9NQVBBX0MzIHwgTlY1MFRJQ18wXzBf VFlQRUFfVU5PUk0gfAo+ICsJCQkgTlY1MFRJQ18wXzBfRk1UXzhfOF84Xzg7Cj4gKwkJfSBlbHNl IHsKPiArCQlmb3JtYXQgPSBOVjUwVElDXzBfMF9NQVBBX0MzIHwgTlY1MFRJQ18wXzBfVFlQRUFf VU5PUk0gfAo+ICAJCQkgTlY1MFRJQ18wXzBfTUFQQl9DMSB8IE5WNTBUSUNfMF8wX1RZUEVCX1VO T1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUEdfWkVSTyB8IE5WNTBUSUNfMF8wX1RZUEVHX1VO T1JNIHwKPiAgCQkJIE5WNTBUSUNfMF8wX01BUFJfWkVSTyB8IE5WNTBUSUNfMF8wX1RZUEVSX1VO T1JNIHwKPiAtCQkJIE5WNTBUSUNfMF8wX0ZNVF84XzhfOF84KTsKPiAtCX0KPiAtCVBVU0hfREFU QSAocHVzaCwgKChzcmMtPm9mZnNldCArIHBhY2tlZF95KSkpOwo+IC0JUFVTSF9EQVRBIChwdXNo LCAoKHNyYy0+b2Zmc2V0ICsgcGFja2VkX3kpID4+IDMyKSB8IG1vZGUpOwo+IC0JUFVTSF9EQVRB IChwdXNoLCAweDAwMzAwMDAwKTsKPiAtCVBVU0hfREFUQSAocHVzaCwgKHdpZHRoID4+IDEpKTsK PiAtCVBVU0hfREFUQSAocHVzaCwgKDEgPDwgTlY1MFRJQ18wXzVfREVQVEhfU0hJRlQpIHwgaGVp Z2h0KTsKPiAtCVBVU0hfREFUQSAocHVzaCwgMHgwMzAwMDAwMCk7Cj4gLQlQVVNIX0RBVEEgKHB1 c2gsIDB4MDAwMDAwMDApOwo+ICsJCQkgTlY1MFRJQ18wXzBfRk1UXzhfOF84Xzg7Cj4gKwkJfQo+ ICsJCVBVU0hfVElDKHB1c2gsIHNyYywgcGFja2VkX3ksIHdpZHRoID4+IDEsIGhlaWdodCwgMCwg Zm9ybWF0KTsKPiAgCX0KPgo+ICAJUFVTSF9EQVRBdShwdXNoLCBwTnYtPnNjcmF0Y2gsIFRTQ19P RkZTRVQsIDE2KTsKPgoKLS0gCi1TYW11ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9ub3V2ZWF1Cg==