From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21479 invoked from network); 8 Jun 2001 11:50:37 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 8 Jun 2001 11:50:37 -0000 Received: (qmail 3588 invoked by alias); 8 Jun 2001 11:50:15 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 14803 Received: (qmail 3568 invoked from network); 8 Jun 2001 11:50:13 -0000 Date: Fri, 8 Jun 2001 14:50:27 +0300 (EET DST) From: Timo Aaltonen X-Sender: tjaalton@nexus6.hut.fi To: zsh-workers@sunsite.dk Subject: RE: AIX-problem: the main module won't link statically In-Reply-To: <000401c0f00f$e4e78e10$21c9ca95@mow.siemens.ru> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-377332280-1532083168-992001027=:23818" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---377332280-1532083168-992001027=:23818 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 8 Jun 2001, Andrej Borsenkow wrote: > > > > The arguments to the link don't look very familiar - I don't recognise > > -bexpall and I don't like the look of the strip (-s) flag when linking a > > shared library. > > case "$host_os" in > ... > aix*) DLLDFLAGS="${DLLDFLAGS=-G -bexpall -lc}" ;; > > -s is O.K. - we explicitly check if it is safe to strip shared libraries. Of > course, test may get it wrong anyway ... > > My guess is that AIX 4.3 has dl* functions and hence AIXDYNAMIC is not used. > But something goes wrong with dlopen() & Co. > > Post config.log here, generated config.h and exact configure invocation > here. Remove config.cache before running configure - else confg.log will be > pretty useless. theremin% CC="cc" ./configure run on a fresh tree, config.* files attached > I vaguelly remember something about AIX and dlopen. Should be in archives. I'll check that after the weekend.. _______________/Timo Aaltonen GSM +358-40-5549 618 ---377332280-1532083168-992001027=:23818 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="config.h" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="config.h" LyogY29uZmlnLmguICBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBjb25m aWd1cmUuICAqLw0KLyogY29uZmlnLmguaW4uICBHZW5lcmF0ZWQgYXV0b21h dGljYWxseSBmcm9tIGNvbmZpZ3VyZS5pbiBieSBhdXRvaGVhZGVyLiAgKi8N Cg0KLyoqKioqIGJlZ2luIHVzZXIgY29uZmlndXJhdGlvbiBzZWN0aW9uICoq KioqLw0KDQovKiBEZWZpbmUgdGhpcyB0byBiZSB0aGUgbG9jYXRpb24gb2Yg eW91ciBwYXNzd29yZCBmaWxlICovDQojZGVmaW5lIFBBU1NXRF9GSUxFICIv ZXRjL3Bhc3N3ZCINCg0KLyogRGVmaW5lIHRoaXMgdG8gYmUgdGhlIG5hbWUg b2YgeW91ciBOSVMvWVAgcGFzc3dvcmQgKg0KICogbWFwIChpZiBhcHBsaWNh YmxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCiNkZWZp bmUgUEFTU1dEX01BUCAicGFzc3dkLmJ5bmFtZSINCg0KLyogRGVmaW5lIHRv IDEgaWYgeW91IHdhbnQgdXNlciBuYW1lcyB0byBiZSBjYWNoZWQgKi8NCiNk ZWZpbmUgQ0FDSEVfVVNFUk5BTUVTIDENCg0KLyogRGVmaW5lIHRvIDEgaWYg c3lzdGVtIHN1cHBvcnRzIGpvYiBjb250cm9sICovDQojZGVmaW5lIEpPQl9D T05UUk9MIDENCg0KLyogRGVmaW5lIHRoaXMgaWYgeW91IHVzZSAic3VzcGVu ZGVkIiBpbnN0ZWFkIG9mICJzdG9wcGVkIiAqLw0KI2RlZmluZSBVU0VfU1VT UEVOREVEIDENCiANCi8qIFRoZSBkZWZhdWx0IGhpc3RvcnkgYnVmZmVyIHNp emUgaW4gbGluZXMgKi8NCiNkZWZpbmUgREVGQVVMVF9ISVNUU0laRSAzMA0K DQovKiBUaGUgZGVmYXVsdCBlZGl0b3IgZm9yIHRoZSBmYyBidWlsdGluICov DQojZGVmaW5lIERFRkFVTFRfRkNFRElUICJ2aSINCg0KLyogVGhlIGRlZmF1 bHQgcHJlZml4IGZvciB0ZW1wb3JhcnkgZmlsZXMgKi8NCiNkZWZpbmUgREVG QVVMVF9UTVBQUkVGSVggIi90bXAvenNoIg0KDQoNCi8qKioqKiBlbmQgb2Yg dXNlciBjb25maWd1cmF0aW9uIHNlY3Rpb24gICAgICAgICAgICAqKioqKi8N Ci8qKioqKiBzaG91bGRuJ3QgaGF2ZSB0byBjaGFuZ2UgYW55dGhpbmcgYmVs b3cgaGVyZSAqKioqKi8NCg0KLyogRGVmaW5lIGlmIHVzaW5nIGFsbG9jYS5j LiAgKi8NCi8qICN1bmRlZiBDX0FMTE9DQSAqLw0KDQovKiBEZWZpbmUgdG8g ZW1wdHkgaWYgdGhlIGtleXdvcmQgZG9lcyBub3Qgd29yay4gICovDQovKiAj dW5kZWYgY29uc3QgKi8NCg0KLyogRGVmaW5lIHRvIG9uZSBvZiBfZ2V0YjY3 LCBHRVRCNjcsIGdldGI2NyBmb3IgQ3JheS0yIGFuZCBDcmF5LVlNUCBzeXN0 ZW1zLg0KICAgVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBmb3IgYWxsb2Nh LmMgc3VwcG9ydCBvbiB0aG9zZSBzeXN0ZW1zLiAgKi8NCi8qICN1bmRlZiBD UkFZX1NUQUNLU0VHX0VORCAqLw0KDQovKiBEZWZpbmUgaWYgdGhlIGBnZXRw Z3JwJyBmdW5jdGlvbiB0YWtlcyBubyBhcmd1bWVudC4gICovDQojZGVmaW5l IEdFVFBHUlBfVk9JRCAxDQoNCi8qIERlZmluZSB0byBgaW50JyBpZiA8c3lz L3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAgKi8NCi8qICN1bmRlZiBnaWRf dCAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgYWxsb2NhLCBhcyBhIGZ1 bmN0aW9uIG9yIG1hY3JvLiAgKi8NCiNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0K DQovKiBEZWZpbmUgaWYgeW91IGhhdmUgPGFsbG9jYS5oPiBhbmQgaXQgc2hv dWxkIGJlIHVzZWQgKG5vdCBvbiBVbHRyaXgpLiAgKi8NCi8qICN1bmRlZiBI QVZFX0FMTE9DQV9IICovDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIHdv cmtpbmcgYG1tYXAnIHN5c3RlbSBjYWxsLiAgKi8NCi8qICN1bmRlZiBIQVZF X01NQVAgKi8NCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJjb2xs IGZ1bmN0aW9uIGFuZCBpdCBpcyBwcm9wZXJseSBkZWZpbmVkLiAgKi8NCiNk ZWZpbmUgSEFWRV9TVFJDT0xMIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZl IDxzeXMvd2FpdC5oPiB0aGF0IGlzIFBPU0lYLjEgY29tcGF0aWJsZS4gICov DQojZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxDQoNCi8qIERlZmluZSB0byBg aW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAgKi8NCi8q ICN1bmRlZiBtb2RlX3QgKi8NCg0KLyogRGVmaW5lIHRvIGBsb25nJyBpZiA8 c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAgKi8NCi8qICN1bmRlZiBv ZmZfdCAqLw0KDQovKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5o PiBkb2Vzbid0IGRlZmluZS4gICovDQovKiAjdW5kZWYgcGlkX3QgKi8NCg0K LyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxl cnMgKGludCBvciB2b2lkKS4gICovDQojZGVmaW5lIFJFVFNJR1RZUEUgdm9p ZA0KDQovKiBEZWZpbmUgdG8gYHVuc2lnbmVkJyBpZiA8c3lzL3R5cGVzLmg+ IGRvZXNuJ3QgZGVmaW5lLiAgKi8NCi8qICN1bmRlZiBzaXplX3QgKi8NCg0K LyogSWYgdXNpbmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBk ZWZpbmUgaWYgeW91IGtub3cgdGhlDQogICBkaXJlY3Rpb24gb2Ygc3RhY2sg Z3Jvd3RoIGZvciB5b3VyIHN5c3RlbTsgb3RoZXJ3aXNlIGl0IHdpbGwgYmUN CiAgIGF1dG9tYXRpY2FsbHkgZGVkdWNlZCBhdCBydW4tdGltZS4NCiBTVEFD S19ESVJFQ1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVz c2VzDQogU1RBQ0tfRElSRUNUSU9OIDwgMCA9PiBncm93cyB0b3dhcmQgbG93 ZXIgYWRkcmVzc2VzDQogU1RBQ0tfRElSRUNUSU9OID0gMCA9PiBkaXJlY3Rp b24gb2YgZ3Jvd3RoIHVua25vd24NCiAqLw0KLyogI3VuZGVmIFNUQUNLX0RJ UkVDVElPTiAqLw0KDQovKiBEZWZpbmUgaWYgdGhlIGBTX0lTKicgbWFjcm9z IGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gICovDQov KiAjdW5kZWYgU1RBVF9NQUNST1NfQlJPS0VOICovDQoNCi8qIERlZmluZSBp ZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gICovDQojZGVm aW5lIFNURENfSEVBREVSUyAxDQoNCi8qIERlZmluZSBpZiB5b3UgY2FuIHNh ZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4g ICovDQojZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQoNCi8qIERlZmlu ZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAg Ki8NCi8qICN1bmRlZiB1aWRfdCAqLw0KDQovKiBUaGUgZ2xvYmFsIGZpbGUg dG8gc291cmNlIGFic29sdXRlbHkgZmlyc3Qgd2hlbmV2ZXIgenNoIGlzIHJ1 bjsgKg0KICogaWYgdW5kZWZpbmVkLCBkb24ndCBzb3VyY2UgYW55dGhpbmcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQojZGVmaW5lIEdMT0JB TF9aU0hFTlYgIi9ldGMvenNoZW52Ig0KDQovKiBUaGUgZ2xvYmFsIGZpbGUg dG8gc291cmNlIHdoZW5ldmVyIHpzaCBpcyBydW47ICoNCiAqIGlmIHVuZGVm aW5lZCwgZG9uJ3Qgc291cmNlIGFueXRoaW5nICAgICAgICAgICAgKi8NCiNk ZWZpbmUgR0xPQkFMX1pTSFJDICIvZXRjL3pzaHJjIg0KDQovKiBUaGUgZ2xv YmFsIGZpbGUgdG8gc291cmNlIHdoZW5ldmVyIHpzaCBpcyBydW4gYXMgYSBs b2dpbiBzaGVsbDsgKg0KICogaWYgdW5kZWZpbmVkLCBkb24ndCBzb3VyY2Ug YW55dGhpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQojZGVm aW5lIEdMT0JBTF9aTE9HSU4gIi9ldGMvemxvZ2luIg0KDQovKiBUaGUgZ2xv YmFsIGZpbGUgdG8gc291cmNlIHdoZW5ldmVyIHpzaCBpcyBydW4gYXMgYSBs b2dpbiBzaGVsbCwgKg0KICogYmVmb3JlIHpzaHJjIGlzIHJlYWQ7IGlmIHVu ZGVmaW5lZCwgZG9uJ3Qgc291cmNlIGFueXRoaW5nICAgICAgICovDQojZGVm aW5lIEdMT0JBTF9aUFJPRklMRSAiL2V0Yy96cHJvZmlsZSINCg0KLyogVGhl IGdsb2JhbCBmaWxlIHRvIHNvdXJjZSB3aGVuZXZlciB6c2ggd2FzIHJ1biBh cyBhIGxvZ2luIHNoZWxsLiAgKg0KICogVGhpcyBpcyBzb3VyY2VkIHJpZ2h0 IGJlZm9yZSBleGl0aW5nLiAgSWYgdW5kZWZpbmVkLCBkb24ndCBzb3VyY2Ug Kg0KICogYW55dGhpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCiNkZWZpbmUgR0xPQkFM X1pMT0dPVVQgIi9ldGMvemxvZ291dCINCg0KLyogRGVmaW5lIHRvIDEgaWYg Y29tcGlsZXIgY291bGQgaW5pdGlhbGlzZSBhIHVuaW9uICovDQojZGVmaW5l IEhBVkVfVU5JT05fSU5JVCAxDQoNCi8qIERlZmluZSB0byAxIGlmIGNvbXBp bGVyIGluY29ycmVjdGx5IGNhc3Qgc2lnbmVkIHRvIHVuc2lnbmVkICovDQov KiAjdW5kZWYgQlJPS0VOX1NJR05FRF9UT19VTlNJR05FRF9DQVNUSU5HICov DQoNCi8qIERlZmluZSB0byAxIGlmIGNvbXBpbGVyIHN1cHBvcnRzIHZhcmlh YmxlLWxlbmd0aCBhcnJheXMgKi8NCi8qICN1bmRlZiBIQVZFX1ZBUklBQkxF X0xFTkdUSF9BUlJBWVMgKi8NCg0KLyogRGVmaW5lIGlmIHlvdXIgc3lzdGVt IGRlZmluZXMgVElPQ0dXSU5TWiBpbiBzeXMvaW9jdGwuaC4gICovDQojZGVm aW5lIEdXSU5TWl9JTl9TWVNfSU9DVEwgMQ0KDQovKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSBOSVMgKi8NCi8qICN1bmRlZiBIQVZFX05JUyAqLw0KDQov KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBOSVNQTFVTICovDQovKiAjdW5k ZWYgSEFWRV9OSVNfUExVUyAqLw0KDQovKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSBSRlMgc3VwZXJyb290IGRpcmVjdG9yeS4gKi8NCi8qICN1bmRlZiBI QVZFX1NVUEVSUk9PVCAqLw0KDQovKiBEZWZpbmUgdG8gMSBpZiB5b3UgbmVl ZCB0byB1c2UgdGhlIG5hdGl2ZSBnZXRjd2QgKi8NCi8qICN1bmRlZiBVU0Vf R0VUQ1dEICovDQoNCi8qIERlZmluZSB0byB0aGUgcGF0aCBvZiB0aGUgL2Rl di9mZCBmaWxlc3lzdGVtICovDQovKiAjdW5kZWYgUEFUSF9ERVZfRkQgKi8N Cg0KLyogRGVmaW5lIGlmIHN5cy90aW1lLmggYW5kIHN5cy9zZWxlY3QuaCBj YW5ub3QgYmUgYm90aCBpbmNsdWRlZCAqLw0KLyogI3VuZGVmIFRJTUVfSF9T RUxFQ1RfSF9DT05GTElDVFMgKi8NCg0KLyogRGVmaW5lIHRvIGJlIHRoZSBt YWNoaW5lIHR5cGUgKG1pY3JvcHJvY2Vzc29yIGNsYXNzIG9yIG1hY2hpbmUg bW9kZWwpICovDQojZGVmaW5lIE1BQ0hUWVBFICJyczYwMDAiDQoNCi8qIERl ZmluZSB0byBiZSB0aGUgbmFtZSBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSAq Lw0KI2RlZmluZSBPU1RZUEUgImFpeDQuMy4yLjAiDQoNCi8qIERlZmluZSB0 byAxIGlmIEFOU0kgZnVuY3Rpb24gcHJvdG90eXBlcyBhcmUgdXNhYmxlLiAg Ki8NCiNkZWZpbmUgUFJPVE9UWVBFUyAxDQoNCi8qIERlZmluZSB0byBiZSBs b2NhdGlvbiBvZiB1dG1wIGZpbGUuICovDQojZGVmaW5lIFBBVEhfVVRNUF9G SUxFICIvZXRjL3V0bXAiDQoNCi8qIERlZmluZSB0byBiZSBsb2NhdGlvbiBv ZiB1dG1weCBmaWxlLiAqLw0KLyogI3VuZGVmIFBBVEhfVVRNUFhfRklMRSAq Lw0KDQovKiBEZWZpbmUgdG8gYmUgbG9jYXRpb24gb2Ygd3RtcCBmaWxlLiAq Lw0KI2RlZmluZSBQQVRIX1dUTVBfRklMRSAiL3Zhci9hZG0vd3RtcCINCg0K LyogRGVmaW5lIHRvIGJlIGxvY2F0aW9uIG9mIHd0bXB4IGZpbGUuICovDQov KiAjdW5kZWYgUEFUSF9XVE1QWF9GSUxFICovDQoNCi8qIERlZmluZSB0byAx IGlmIHN0cnVjdCB1dG1wIGlzIGRlZmluZWQgYnkgYSBzeXN0ZW0gaGVhZGVy ICovDQojZGVmaW5lIEhBVkVfU1RSVUNUX1VUTVAgMQ0KDQovKiBEZWZpbmUg dG8gMSBpZiBzdHJ1Y3QgdXRtcHggaXMgZGVmaW5lZCBieSBhIHN5c3RlbSBo ZWFkZXIgKi8NCiNkZWZpbmUgSEFWRV9TVFJVQ1RfVVRNUFggMQ0KDQovKiBE ZWZpbmUgaWYgeW91ciBzeXN0ZW0ncyBzdHJ1Y3QgdXRtcCBoYXMgYSBtZW1i ZXIgbmFtZWQgdXRfaG9zdC4gICovDQojZGVmaW5lIEhBVkVfU1RSVUNUX1VU TVBfVVRfSE9TVCAxDQoNCi8qIERlZmluZSBpZiB5b3VyIHN5c3RlbSdzIHN0 cnVjdCB1dG1weCBoYXMgYSBtZW1iZXIgbmFtZWQgdXRfaG9zdC4gICovDQoj ZGVmaW5lIEhBVkVfU1RSVUNUX1VUTVBYX1VUX0hPU1QgMQ0KDQovKiBEZWZp bmUgaWYgeW91ciBzeXN0ZW0ncyBzdHJ1Y3QgdXRtcHggaGFzIGEgbWVtYmVy IG5hbWVkIHV0X3h0aW1lLiAgKi8NCi8qICN1bmRlZiBIQVZFX1NUUlVDVF9V VE1QWF9VVF9YVElNRSAqLw0KDQovKiBEZWZpbmUgaWYgeW91ciBzeXN0ZW0n cyBzdHJ1Y3QgdXRtcHggaGFzIGEgbWVtYmVyIG5hbWVkIHV0X3R2LiAgKi8N CiNkZWZpbmUgSEFWRV9TVFJVQ1RfVVRNUFhfVVRfVFYgMQ0KDQovKiBEZWZp bmUgaWYgeW91ciBzeXN0ZW0ncyBzdHJ1Y3QgZGlyZW50IGhhcyBhIG1lbWJl ciBuYW1lZCBkX2luby4gICovDQojZGVmaW5lIEhBVkVfU1RSVUNUX0RJUkVO VF9EX0lOTyAxDQoNCi8qIERlZmluZSBpZiB5b3VyIHN5c3RlbSdzIHN0cnVj dCBkaXJlbnQgaGFzIGEgbWVtYmVyIG5hbWVkIGRfc3RhdC4gICovDQovKiAj dW5kZWYgSEFWRV9TVFJVQ1RfRElSRU5UX0RfU1RBVCAqLw0KDQovKiBEZWZp bmUgaWYgeW91ciBzeXN0ZW0ncyBzdHJ1Y3QgZGlyZWN0IGhhcyBhIG1lbWJl ciBuYW1lZCBkX2luby4gICovDQovKiAjdW5kZWYgSEFWRV9TVFJVQ1RfRElS RUNUX0RfSU5PICovDQoNCi8qIERlZmluZSBpZiB5b3VyIHN5c3RlbSdzIHN0 cnVjdCBkaXJlY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGRfc3RhdC4gICovDQov KiAjdW5kZWYgSEFWRV9TVFJVQ1RfRElSRUNUX0RfU1RBVCAqLw0KDQovKiBE ZWZpbmUgaWYgeW91ciBzeXN0ZW0ncyBzdHJ1Y3Qgc29ja2FkZHJfaW42IGhh cyBhIG1lbWJlciBuYW1lZCBzaW42X3Njb3BlX2lkLiAgKi8NCi8qICN1bmRl ZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAqLw0K DQovKiBEZWZpbmUgdG8gYmUgYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0aGUg dmVuZG9yIG9mIHRoZSBtYWNoaW5lICovDQojZGVmaW5lIFZFTkRPUiAiaWJt Ig0KDQovKiBEZWZpbmUgdG8gbGltaXQgam9iIHRhYmxlIHNpemUgKi8NCiNk ZWZpbmUgTUFYSk9CIDUwDQovKiAjdW5kZWYgTkVFRF9MSU5VWF9UQVNLU19I ICovDQoNCi8qIERlZmluZSBpZiB5b3VyIHN5c3RlbSBkZWZpbmVzIGBzdHJ1 Y3Qgd2luc2l6ZScgaW4gc3lzL3B0ZW0uaC4gICovDQovKiAjdW5kZWYgV0lO U0laRV9JTl9QVEVNICovDQoNCi8qIERlZmluZSB0byAxIGlmIHlvdSB3YW50 IHRvIGRlYnVnIHpzaCAqLw0KLyogI3VuZGVmIERFQlVHICovDQoNCi8qIERl ZmluZSB0byAxIGlmIHlvdSB3YW50IHRvIHVzZSB6c2gncyBvd24gbWVtb3J5 IGFsbG9jYXRpb24gcm91dGluZXMgKi8NCi8qICN1bmRlZiBaU0hfTUVNICov DQoNCi8qIERlZmluZSB0byAxIGlmIHlvdSB3YW50IHRvIGRlYnVnIHpzaCBt ZW1vcnkgYWxsb2NhdGlvbiByb3V0aW5lcyAqLw0KLyogI3VuZGVmIFpTSF9N RU1fREVCVUcgKi8NCg0KLyogRGVmaW5lIHRvIDEgaWYgeW91IHdhbnQgdG8g dHVybiBvbiB3YXJuaW5ncyBvZiBtZW1vcnkgYWxsb2NhdGlvbiBlcnJvcnMg Ki8NCi8qICN1bmRlZiBaU0hfTUVNX1dBUk5JTkcgKi8NCg0KLyogRGVmaW5l IHRvIDEgaWYgeW91IHdhbnQgdG8gdHVybiBvbiBtZW1vcnkgY2hlY2tpbmcg Zm9yIGZyZWUoKSAqLw0KLyogI3VuZGVmIFpTSF9TRUNVUkVfRlJFRSAqLw0K DQovKiBEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byBnZXQgZGVidWdnaW5n IGluZm9ybWF0aW9uIG9uIGludGVybmFsICoNCiAqIGhhc2ggdGFibGVzLiAg VGhpcyB0dXJucyBvbiB0aGUgYGhhc2hpbmZvJyBidWlsdGluLiAgICAgICAg ICAgICAgKi8NCi8qICN1bmRlZiBaU0hfSEFTSF9ERUJVRyAqLw0KDQovKiBV bmRlZmluZSB0aGlzIGlmIHlvdSBkb24ndCB3YW50IHRvIGdldCBhIHJlc3Ry aWN0ZWQgc2hlbGwgKg0KICogd2hlbiB6c2ggaXMgZXhlYydkIHdpdGggYmFz ZW5hbWUgdGhhdCBzdGFydHMgd2l0aCByLiAgICAgICoNCiAqIEJ5IGRlZmF1 bHQgdGhpcyBpcyBkZWZpbmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLw0KI2RlZmluZSBSRVNUUklDVEVEX1IgMQ0KDQovKiBEZWZpbmUg Zm9yIE1haWxkaXIgc3VwcG9ydCAqLw0KLyogI3VuZGVmIE1BSUxESVJfU1VQ UE9SVCAqLw0KDQovKiBEZWZpbmUgZm9yIGZ1bmN0aW9uIGRlcHRoIGxpbWl0 cyAqLw0KLyogI3VuZGVmIE1BWF9GVU5DVElPTl9ERVBUSCAqLw0KDQovKiBE ZWZpbmUgaWYgeW91IHdhbnQgbG9jYWxlIGZlYXR1cmVzLiAgQnkgZGVmYXVs dCB0aGlzIGlzIGRlZmluZWQuICovDQojZGVmaW5lIENPTkZJR19MT0NBTEUg MQ0KDQovKiBEZWZpbmUgdG8gMSBpZiB5b3VyIHRlcm1jYXAgbGlicmFyeSBo YXMgdGhlIG9zcGVlZCB2YXJpYWJsZSAqLw0KI2RlZmluZSBIQVZFX09TUEVF RCAxDQovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBvc3BlZWQsIGJ1dCBp dCBpcyBub3QgZGVmaW5lZCBpbiB0ZXJtY2FwLmggKi8NCiNkZWZpbmUgTVVT VF9ERUZJTkVfT1NQRUVEIDENCg0KLyogRGVmaW5lIHRvIDEgaWYgdGdldGVu dCgpIGFjY2VwdHMgTlVMTCBhcyBhIGJ1ZmZlciAqLw0KI2RlZmluZSBUR0VU RU5UX0FDQ0VQVFNfTlVMTCAxDQoNCi8qIERlZmluZSB0byAxIGlmIHlvdSB1 c2UgUE9TSVggc3R5bGUgc2lnbmFsIGhhbmRsaW5nICovDQojZGVmaW5lIFBP U0lYX1NJR05BTFMgMQ0KDQovKiBEZWZpbmUgdG8gMSBpZiB5b3UgdXNlIEJT RCBzdHlsZSBzaWduYWwgaGFuZGxpbmcgKGFuZCBjYW4gYmxvY2sgc2lnbmFs cykgKi8NCi8qICN1bmRlZiBCU0RfU0lHTkFMUyAqLw0KDQovKiBEZWZpbmUg dG8gMSBpZiB5b3UgdXNlIFNZUyBzdHlsZSBzaWduYWwgaGFuZGxpbmcgKGFu ZCBjYW4gYmxvY2sgc2lnbmFscykgKi8NCi8qICN1bmRlZiBTWVNWX1NJR05B TFMgKi8NCg0KLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgbm8gc2lnbmFs IGJsb2NraW5nIGF0IGFsbCAoYnVtbWVyKSAqLw0KLyogI3VuZGVmIE5PX1NJ R05BTF9CTE9DS0lORyAqLw0KDQovKiBEZWZpbmUgdG8gYHVuc2lnbmVkIGlu dCcgaWYgPHN5cy90eXBlcy5oPiBvciA8c2lnbmFsLmg+IGRvZXNuJ3QgZGVm aW5lICovDQovKiAjdW5kZWYgc2lnc2V0X3QgKi8NCg0KLyogRGVmaW5lIHRv IDEgaWYgc3RydWN0IHRpbWV6b25lIGlzIGRlZmluZWQgYnkgYSBzeXN0ZW0g aGVhZGVyICovDQojZGVmaW5lIEhBVkVfU1RSVUNUX1RJTUVaT05FIDENCg0K LyogRGVmaW5lIHRvIDEgaWYgdGhlcmUgaXMgYSBwcm90b3R5cGUgZGVmaW5l ZCBmb3IgYnJrKCkgb24geW91ciBzeXN0ZW0gKi8NCiNkZWZpbmUgSEFWRV9C UktfUFJPVE8gMQ0KDQovKiBEZWZpbmUgdG8gMSBpZiB0aGVyZSBpcyBhIHBy b3RvdHlwZSBkZWZpbmVkIGZvciBzYnJrKCkgb24geW91ciBzeXN0ZW0gKi8N CiNkZWZpbmUgSEFWRV9TQlJLX1BST1RPIDENCg0KLyogRGVmaW5lIHRvIDEg aWYgdGhlcmUgaXMgYSBwcm90b3R5cGUgZGVmaW5lZCBmb3IgaW9jdGwoKSBv biB5b3VyIHN5c3RlbSAqLw0KLyogI3VuZGVmIEhBVkVfSU9DVExfUFJPVE8g Ki8NCg0KLyogRGVmaW5lIHRvIDEgaWYgdGhlcmUgaXMgYSBwcm90b3R5cGUg ZGVmaW5lZCBmb3IgbWtub2QoKSBvbiB5b3VyIHN5c3RlbSAqLw0KI2RlZmlu ZSBIQVZFX01LTk9EX1BST1RPIDENCg0KLyogRGVmaW5lIHRvIDEgaWYgc2Vs ZWN0KCkgaXMgZGVmaW5lZCBpbiA8c3lzL3NvY2tldC5oPiwgaWUgQmVPUyBS NC41MSovDQovKiAjdW5kZWYgU0VMRUNUX0lOX1NZU19TT0NLRVRfSCAqLw0K DQovKiBEZWZpbmUgdG8gMSBpZiBzeXN0ZW0gaGFzIHdvcmtpbmcgRklGTydz ICovDQojZGVmaW5lIEhBVkVfRklGT1MgMQ0KDQovKiBEZWZpbmUgdG8gMSBp ZiBzdHJ1Y3QgcmxpbWl0IHVzZXMgcXVhZF90ICovDQovKiAjdW5kZWYgUkxJ TV9UX0lTX1FVQURfVCAqLw0KDQovKiBEZWZpbmUgdG8gMSBpZiBzdHJ1Y3Qg cmxpbWl0IHVzZXMgbG9uZyBsb25nICovDQovKiAjdW5kZWYgUkxJTV9UX0lT X0xPTkdfTE9ORyAqLw0KDQovKiBEZWZpbmUgdG8gMSBpZiBybGltaXQgdXNl cyB1bnNpZ25lZCAqLw0KI2RlZmluZSBSTElNX1RfSVNfVU5TSUdORUQgMQ0K DQovKiBEZWZpbmUgdG8gdGhlIHR5cGUgdXNlZCBpbiBzdHJ1Y3QgcmxpbWl0 ICovDQovKiAjdW5kZWYgcmxpbV90ICovDQoNCi8qIERlZmluZSB0byAxIGlm IC9iaW4vc2ggZG9lcyBub3QgaW50ZXJwcmV0IFwgZXNjYXBlIHNlcXVlbmNl cyAqLw0KLyogI3VuZGVmIFNIX1VTRV9CU0RfRUNITyAqLw0KDQovKiBEZWZp bmUgdG8gMSBpZiBzeXN0ZW0gaGFzIHdvcmtpbmcgbGluaygpICovDQojZGVm aW5lIEhBVkVfTElOSyAxDQoNCi8qIERlZmluZSB0byAxIGlmIGtpbGwocGlk LCAwKSBkb2Vzbid0IHJldHVybiBFU1JDSCwgaWUgQmVPUyBSNC41MSAqLw0K LyogI3VuZGVmIEJST0tFTl9LSUxMX0VTUkNIICovDQoNCi8qIERlZmluZSB0 byAxIGlmIHNpZ3N1c3BlbmQoKSBpcyBicm9rZW4sIGllIEJlT1MgUjQuNTEg Ki8NCi8qICN1bmRlZiBCUk9LRU5fUE9TSVhfU0lHU1VTUEVORCAqLw0KDQov KiBEZWZpbmUgdG8gMSBpZiBnZXRwd25hbSgpIGlzIGZha2VkLCBpZSBCZU9T IFI0LjUxICovDQovKiAjdW5kZWYgR0VUUFdOQU1fRkFLRUQgKi8NCg0KLyog RGVmaW5lIHRvIDEgaWYgdGNzZXRwZ3JwKCkgZG9lc24ndCB3b3JrLCBpZSBC ZU9TIFI0LjUxICovDQovKiAjdW5kZWYgQlJPS0VOX1RDU0VUUEdSUCAqLw0K DQovKiBEZWZpbmUgdG8gMSBpZiBhbiB1bmRlcnNjb3JlIGhhcyB0byBiZSBw cmVwZW5kZWQgdG8gZGxzeW0oKSBhcmd1bWVudCAqLw0KLyogI3VuZGVmIERM U1lNX05FRURTX1VOREVSU0NPUkUgKi8NCg0KLyogRGVmaW5lIHRvIDEgaWYg bXVsdGlwbGUgbW9kdWxlcyBkZWZpbmluZyB0aGUgc2FtZSBzeW1ib2wgYXJl IE9LICovDQojZGVmaW5lIERZTkFNSUNfTkFNRV9DTEFTSF9PSyAxDQoNCi8q IFRoZSBleGVuc2lvbiB1c2VkIGZvciBkeW5hbWljYWxseSBsb2FkZWQgbW9k dWxlcyAqLw0KI2RlZmluZSBETF9FWFQgInNvIg0KDQovKiBEZWZpbmUgdG8g MSBpZiB5b3Ugd2FudCB0byB1c2UgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVs ZXMgKi8NCiNkZWZpbmUgRFlOQU1JQyAxDQoNCi8qIERlZmluZSB0byAxIGlm IHlvdSB3YW50IHRvIHVzZSBkeW5hbWljYWxseSBsb2FkZWQgbW9kdWxlcyBv biBBSVggKi8NCi8qICN1bmRlZiBBSVhEWU5BTUlDICovDQoNCi8qIERlZmlu ZSB0byAxIGlmIHlvdSB3YW50IHRvIHVzZSBkeW5hbWljYWxseSBsb2FkZWQg bW9kdWxlcyBvbiBIUFVYIDEwICovDQovKiAjdW5kZWYgSFBVWERZTkFNSUMg Ki8NCg0KLyogRGVmaW5lIHRvIGB1bnNpZ25lZCBsb25nJyBpZiA8c3lzL3R5 cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLw0KLyogI3VuZGVmIGlub190ICov DQoNCi8qDQogKiBEZWZpbml0aW9ucyB1c2VkIHdoZW4gYSBsb25nIGlzIGxl c3MgdGhhbiBlaWdodCBieXRlLCB0byB0cnkgdG8NCiAqIHByb3ZpZGUgc29t ZSBzdXBwb3J0IGZvciBlaWdodCBieXRlIG9wZXJhdGlvbnMuDQogKg0KICog Tm90ZSB0aGF0IFpTSF82NF9CSVRfVFlQRSwgT0ZGX1RfSVNfNjRfQklULCBJ Tk9fVF9JU182NF9CSVQgZG8gKm5vdCogZ2V0DQogKiBkZWZpbmVkIGlmIGxv bmcgaXMgYWxyZWFkeSA2NCBiaXRzLCBzaW5jZSBpbiB0aGF0IGNhc2Ugbm8g c3BlY2lhbCBoYW5kbGluZw0KICogaXMgcmVxdWlyZWQuDQogKi8NCi8qIERl ZmluZSB0byAxIGlmIGxvbmcgaXMgNjQgYml0cyAqLw0KLyogI3VuZGVmIExP TkdfSVNfNjRfQklUICovDQoNCi8qIERlZmluZSB0byBhIDY0IGJpdCBpbnRl Z2VyIHR5cGUgaWYgdGhlcmUgaXMgb25lLCBidXQgbG9uZyBpcyBzaG9ydGVy ICovDQojZGVmaW5lIFpTSF82NF9CSVRfVFlQRSBsb25nIGxvbmcNCg0KLyog RGVmaW5lIHRvIGFuIHVuc2lnbmVkIHZhcmlhbnQgb2YgWlNIXzY0X0JJVF9U WVBFIGlmIHRoYXQgaXMgZGVmaW5lZCAqLw0KI2RlZmluZSBaU0hfNjRfQklU X1VUWVBFIHVuc2lnbmVkIGxvbmcgbG9uZw0KDQovKiBEZWZpbmUgdG8gMSBp ZiBvZmZfdCBpcyA2NCBiaXQgKGZvciBsYXJnZSBmaWxlIHN1cHBvcnQpICov DQovKiAjdW5kZWYgT0ZGX1RfSVNfNjRfQklUICovDQoNCi8qIERlZmluZSB0 byAxIGlmIGlub190IGlzIDY0IGJpdCAoZm9yIGxhcmdlIGZpbGUgc3VwcG9y dCkgKi8NCi8qICN1bmRlZiBJTk9fVF9JU182NF9CSVQgKi8NCg0KLyogRGVm aW5lIHRvIDEgaWYgaF9lcnJubyBpcyBub3QgZGVmaW5lZCBieSB0aGUgc3lz dGVtICovDQovKiAjdW5kZWYgVVNFX0xPQ0FMX0hfRVJSTk8gKi8NCg0KLyog RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB0ZXJtY2FwIGJvb2xjb2RlcyBzeW1i b2wuICAqLw0KLyogI3VuZGVmIEhBVkVfQk9PTENPREVTICovDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGVybWNhcCBudW1jb2RlcyBzeW1ib2wu ICAqLw0KLyogI3VuZGVmIEhBVkVfTlVNQ09ERVMgKi8NCg0KLyogRGVmaW5l IGlmIHlvdSBoYXZlIHRoZSB0ZXJtY2FwIHN0cmNvZGVzIHN5bWJvbC4gICov DQovKiAjdW5kZWYgSEFWRV9TVFJDT0RFUyAqLw0KDQovKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIHRlcm1pbmZvIGJvb2xuYW1lcyBzeW1ib2wuICAqLw0K LyogI3VuZGVmIEhBVkVfQk9PTE5BTUVTICovDQoNCi8qIERlZmluZSBpZiB5 b3UgaGF2ZSB0aGUgdGVybWluZm8gbnVtbmFtZXMgc3ltYm9sLiAgKi8NCi8q ICN1bmRlZiBIQVZFX05VTU5BTUVTICovDQoNCi8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgdGVybWluZm8gc3RybmFtZXMgc3ltYm9sLiAgKi8NCi8qICN1 bmRlZiBIQVZFX1NUUk5BTUVTICovDQoNCi8qIERlZmluZSBpZiB0ZXJtLmgg Y2hva2VzIHdpdGhvdXQgY3Vyc2VzLmggKi8NCiNkZWZpbmUgVEVSTV9IX05F RURTX0NVUlNFU19IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBf bWt0ZW1wIGZ1bmN0aW9uLiAgKi8NCi8qICN1bmRlZiBIQVZFX19NS1RFTVAg Ki8NCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBicmsgZnVuY3Rpb24u ICAqLw0KI2RlZmluZSBIQVZFX0JSSyAxDQoNCi8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgY2FwX2dldF9wcm9jIGZ1bmN0aW9uLiAgKi8NCi8qICN1bmRl ZiBIQVZFX0NBUF9HRVRfUFJPQyAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIGRpZmZ0aW1lIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9E SUZGVElNRSAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZGxjbG9z ZSBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfRExDTE9TRSAxDQoNCi8q IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZGxlcnJvciBmdW5jdGlvbi4gICov DQojZGVmaW5lIEhBVkVfRExFUlJPUiAxDQoNCi8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgZGxvcGVuIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9E TE9QRU4gMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGRsc3ltIGZ1 bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9ETFNZTSAxDQoNCi8qIERlZmlu ZSBpZiB5b3UgaGF2ZSB0aGUgZmFjY2Vzc3ggZnVuY3Rpb24uICAqLw0KI2Rl ZmluZSBIQVZFX0ZBQ0NFU1NYIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSBmY2hkaXIgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX0ZDSERJ UiAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnNlZWtvIGZ1bmN0 aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9GU0VFS08gMQ0KDQovKiBEZWZpbmUg aWYgeW91IGhhdmUgdGhlIGZ0ZWxsbyBmdW5jdGlvbi4gICovDQojZGVmaW5l IEhBVkVfRlRFTExPIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBm dHJ1bmNhdGUgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX0ZUUlVOQ0FU RSAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0ZW52IGZ1bmN0 aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9HRVRFTlYgMQ0KDQovKiBEZWZpbmUg aWYgeW91IGhhdmUgdGhlIGdldGdyZ2lkIGZ1bmN0aW9uLiAgKi8NCiNkZWZp bmUgSEFWRV9HRVRHUkdJRCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0 aGUgZ2V0Z3JuYW0gZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX0dFVEdS TkFNIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXRob3N0Ynlu YW1lMiBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFN RTIgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGhvc3RuYW1l IGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxDQoN Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0aXBub2RlYnluYW1lIGZ1 bmN0aW9uLiAgKi8NCi8qICN1bmRlZiBIQVZFX0dFVElQTk9ERUJZTkFNRSAq Lw0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGxvZ2luIGZ1bmN0 aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9HRVRMT0dJTiAxDQoNCi8qIERlZmlu ZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0cGFnZXNpemUgZnVuY3Rpb24uICAqLw0K I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCg0KLyogRGVmaW5lIGlmIHlv dSBoYXZlIHRoZSBnZXRwd2VudCBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhB VkVfR0VUUFdFTlQgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdl dHB3bmFtIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9HRVRQV05BTSAx DQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0cHd1aWQgZnVuY3Rp b24uICAqLw0KI2RlZmluZSBIQVZFX0dFVFBXVUlEIDENCg0KLyogRGVmaW5l IGlmIHlvdSBoYXZlIHRoZSBnZXRybGltaXQgZnVuY3Rpb24uICAqLw0KI2Rl ZmluZSBIQVZFX0dFVFJMSU1JVCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2 ZSB0aGUgZ2V0dGltZW9mZGF5IGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFW RV9HRVRUSU1FT0ZEQVkgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl IGluZXRfYXRvbiBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfSU5FVF9B VE9OIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpbmV0X250b3Ag ZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxDQoNCi8q IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaW5ldF9wdG9uIGZ1bmN0aW9uLiAg Ki8NCiNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQ0KDQovKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIGluaXRncm91cHMgZnVuY3Rpb24uICAqLw0KI2RlZmlu ZSBIQVZFX0lOSVRHUk9VUFMgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUg dGhlIGtpbGxwZyBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfS0lMTFBH IDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBsY2hvd24gZnVuY3Rp b24uICAqLw0KI2RlZmluZSBIQVZFX0xDSE9XTiAxDQoNCi8qIERlZmluZSBp ZiB5b3UgaGF2ZSB0aGUgbG9hZCBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhB VkVfTE9BRCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbG9hZGJp bmQgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX0xPQURCSU5EIDENCg0K LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBsb2FkcXVlcnkgZnVuY3Rpb24u ICAqLw0KI2RlZmluZSBIQVZFX0xPQURRVUVSWSAxDQoNCi8qIERlZmluZSBp ZiB5b3UgaGF2ZSB0aGUgbHN0YXQgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBI QVZFX0xTVEFUIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtZW1j cHkgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX01FTUNQWSAxDQoNCi8q IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbWVtbW92ZSBmdW5jdGlvbi4gICov DQojZGVmaW5lIEhBVkVfTUVNTU9WRSAxDQoNCi8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgbWtmaWZvIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9N S0ZJRk8gMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1zeW5jIGZ1 bmN0aW9uLiAgKi8NCi8qICN1bmRlZiBIQVZFX01TWU5DICovDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgbXVubWFwIGZ1bmN0aW9uLiAgKi8NCi8q ICN1bmRlZiBIQVZFX01VTk1BUCAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIG5pY2UgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX05JQ0Ug MQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG5pc19saXN0IGZ1bmN0 aW9uLiAgKi8NCi8qICN1bmRlZiBIQVZFX05JU19MSVNUICovDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgcGF0aGNvbmYgZnVuY3Rpb24uICAqLw0K I2RlZmluZSBIQVZFX1BBVEhDT05GIDENCg0KLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBwb2xsIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9QT0xM IDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBwdXRlbnYgZnVuY3Rp b24uICAqLw0KI2RlZmluZSBIQVZFX1BVVEVOViAxDQoNCi8qIERlZmluZSBp ZiB5b3UgaGF2ZSB0aGUgcmVhZGxpbmsgZnVuY3Rpb24uICAqLw0KI2RlZmlu ZSBIQVZFX1JFQURMSU5LIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo ZSBzYnJrIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9TQlJLIDENCg0K LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzZWxlY3QgZnVuY3Rpb24uICAq Lw0KI2RlZmluZSBIQVZFX1NFTEVDVCAxDQoNCi8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgc2V0ZXVpZCBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVf U0VURVVJRCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0bG9j YWxlIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQ0K DQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldHBnaWQgZnVuY3Rpb24u ICAqLw0KI2RlZmluZSBIQVZFX1NFVFBHSUQgMQ0KDQovKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIHNldHBncnAgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBI QVZFX1NFVFBHUlAgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNl dHJlc3VpZCBmdW5jdGlvbi4gICovDQovKiAjdW5kZWYgSEFWRV9TRVRSRVNV SUQgKi8NCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzZXRyZXVpZCBm dW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfU0VUUkVVSUQgMQ0KDQovKiBE ZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldHNpZCBmdW5jdGlvbi4gICovDQoj ZGVmaW5lIEhBVkVfU0VUU0lEIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSBzZXR1aWQgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX1NFVFVJ RCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0dXB0ZXJtIGZ1 bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9TRVRVUFRFUk0gMQ0KDQovKiBE ZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNobF9maW5kc3ltIGZ1bmN0aW9uLiAg Ki8NCi8qICN1bmRlZiBIQVZFX1NITF9GSU5EU1lNICovDQoNCi8qIERlZmlu ZSBpZiB5b3UgaGF2ZSB0aGUgc2hsX2xvYWQgZnVuY3Rpb24uICAqLw0KLyog I3VuZGVmIEhBVkVfU0hMX0xPQUQgKi8NCg0KLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBzaGxfdW5sb2FkIGZ1bmN0aW9uLiAgKi8NCi8qICN1bmRlZiBI QVZFX1NITF9VTkxPQUQgKi8NCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo ZSBzaWdhY3Rpb24gZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX1NJR0FD VElPTiAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2lnYmxvY2sg ZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX1NJR0JMT0NLIDENCg0KLyog RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaWdob2xkIGZ1bmN0aW9uLiAgKi8N CiNkZWZpbmUgSEFWRV9TSUdIT0xEIDENCg0KLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBzaWduZ2FtIGZ1bmN0aW9uLiAgKi8NCi8qICN1bmRlZiBIQVZF X1NJR05HQU0gKi8NCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaWdw cm9jbWFzayBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfU0lHUFJPQ01B U0sgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNpZ3JlbHNlIGZ1 bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9TSUdSRUxTRSAxDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2lnc2V0bWFzayBmdW5jdGlvbi4gICov DQojZGVmaW5lIEhBVkVfU0lHU0VUTUFTSyAxDQoNCi8qIERlZmluZSBpZiB5 b3UgaGF2ZSB0aGUgc3RyZXJyb3IgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBI QVZFX1NUUkVSUk9SIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBz dHJmdGltZSBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfU1RSRlRJTUUg MQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cnN0ciBmdW5jdGlv bi4gICovDQojZGVmaW5lIEhBVkVfU1RSU1RSIDENCg0KLyogRGVmaW5lIGlm IHlvdSBoYXZlIHRoZSBzeXNjb25mIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUg SEFWRV9TWVNDT05GIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB0 Y2dldGF0dHIgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX1RDR0VUQVRU UiAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGNzZXRwZ3JwIGZ1 bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9UQ1NFVFBHUlAgMQ0KDQovKiBE ZWZpbmUgaWYgeW91IGhhdmUgdGhlIHRnZXRlbnQgZnVuY3Rpb24uICAqLw0K I2RlZmluZSBIQVZFX1RHRVRFTlQgMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIHRpZ2V0ZmxhZyBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVf VElHRVRGTEFHIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB0aWdl dG51bSBmdW5jdGlvbi4gICovDQojZGVmaW5lIEhBVkVfVElHRVROVU0gMQ0K DQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHRpZ2V0c3RyIGZ1bmN0aW9u LiAgKi8NCiNkZWZpbmUgSEFWRV9USUdFVFNUUiAxDQoNCi8qIERlZmluZSBp ZiB5b3UgaGF2ZSB0aGUgdW5hbWUgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBI QVZFX1VOQU1FIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB1bmxv YWQgZnVuY3Rpb24uICAqLw0KI2RlZmluZSBIQVZFX1VOTE9BRCAxDQoNCi8q IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2FpdDMgZnVuY3Rpb24uICAqLw0K I2RlZmluZSBIQVZFX1dBSVQzIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSB3YWl0cGlkIGZ1bmN0aW9uLiAgKi8NCiNkZWZpbmUgSEFWRV9XQUlU UElEIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8Y3Vyc2VzLmg+ IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9DVVJTRVNfSCAxDQoN Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIg ZmlsZS4gICovDQojZGVmaW5lIEhBVkVfRElSRU5UX0ggMQ0KDQovKiBEZWZp bmUgaWYgeW91IGhhdmUgdGhlIDxkbC5oPiBoZWFkZXIgZmlsZS4gICovDQov KiAjdW5kZWYgSEFWRV9ETF9IICovDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2 ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFW RV9ETEZDTl9IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZXJy bm8uaD4gaGVhZGVyIGZpbGUuICAqLw0KI2RlZmluZSBIQVZFX0VSUk5PX0gg MQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxmY250bC5oPiBoZWFk ZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfRkNOVExfSCAxDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGdycC5oPiBoZWFkZXIgZmlsZS4gICov DQojZGVmaW5lIEhBVkVfR1JQX0ggMQ0KDQovKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIDxsaWJjLmg+IGhlYWRlciBmaWxlLiAgKi8NCi8qICN1bmRlZiBI QVZFX0xJQkNfSCAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxs aW1pdHMuaD4gaGVhZGVyIGZpbGUuICAqLw0KI2RlZmluZSBIQVZFX0xJTUlU U19IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bG9jYWxlLmg+ IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQoN Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIg ZmlsZS4gICovDQojZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KDQovKiBEZWZp bmUgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLiAgKi8N Ci8qICN1bmRlZiBIQVZFX05ESVJfSCAqLw0KDQovKiBEZWZpbmUgaWYgeW91 IGhhdmUgdGhlIDxuZXRpbmV0L2luX3N5c3RtLmg+IGhlYWRlciBmaWxlLiAg Ki8NCiNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX1NZU1RNX0ggMQ0KDQovKiBE ZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAg Ki8NCiNkZWZpbmUgSEFWRV9QT0xMX0ggMQ0KDQovKiBEZWZpbmUgaWYgeW91 IGhhdmUgdGhlIDxwd2QuaD4gaGVhZGVyIGZpbGUuICAqLw0KI2RlZmluZSBI QVZFX1BXRF9IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3Rk bGliLmg+IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9TVERMSUJf SCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBo ZWFkZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KDQov KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvY2FwYWJpbGl0eS5oPiBo ZWFkZXIgZmlsZS4gICovDQovKiAjdW5kZWYgSEFWRV9TWVNfQ0FQQUJJTElU WV9IICovDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIu aD4gaGVhZGVyIGZpbGUuICAqLw0KLyogI3VuZGVmIEhBVkVfU1lTX0RJUl9I ICovDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5o PiBoZWFkZXIgZmlsZS4gICovDQovKiAjdW5kZWYgSEFWRV9TWVNfRklMSU9f SCAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW1hbi5o PiBoZWFkZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAx DQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhl YWRlciBmaWxlLiAgKi8NCi8qICN1bmRlZiBIQVZFX1NZU19ORElSX0ggKi8N Cg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BhcmFtLmg+IGhl YWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQoN Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZXNvdXJjZS5oPiBo ZWFkZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+ IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0gg MQ0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBo ZWFkZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQoN Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lcy5oPiBoZWFk ZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KDQov KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVy IGZpbGUuICAqLw0KI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCg0KLyog RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVy IGZpbGUuICAqLw0KI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0ggMQ0KDQov KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx0ZXJtLmg+IGhlYWRlciBmaWxl LiAgKi8NCiNkZWZpbmUgSEFWRV9URVJNX0ggMQ0KDQovKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIDx0ZXJtY2FwLmg+IGhlYWRlciBmaWxlLiAgKi8NCi8q ICN1bmRlZiBIQVZFX1RFUk1DQVBfSCAqLw0KDQovKiBEZWZpbmUgaWYgeW91 IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICAqLw0KI2RlZmlu ZSBIQVZFX1RFUk1JT19IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo ZSA8dGVybWlvcy5oPiBoZWFkZXIgZmlsZS4gICovDQojZGVmaW5lIEhBVkVf VEVSTUlPU19IIDENCg0KLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8dW5p c3RkLmg+IGhlYWRlciBmaWxlLiAgKi8NCiNkZWZpbmUgSEFWRV9VTklTVERf SCAxDQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHV0bXAuaD4gaGVh ZGVyIGZpbGUuICAqLw0KI2RlZmluZSBIQVZFX1VUTVBfSCAxDQoNCi8qIERl ZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHV0bXB4Lmg+IGhlYWRlciBmaWxlLiAg Ki8NCiNkZWZpbmUgSEFWRV9VVE1QWF9IIDENCg0KLyogRGVmaW5lIGlmIHlv dSBoYXZlIHRoZSBjYXAgbGlicmFyeSAoLWxjYXApLiAgKi8NCi8qICN1bmRl ZiBIQVZFX0xJQkNBUCAqLw0KDQovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl IGRsIGxpYnJhcnkgKC1sZGwpLiAgKi8NCiNkZWZpbmUgSEFWRV9MSUJETCAx DQoNCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbSBsaWJyYXJ5ICgtbG0p LiAgKi8NCiNkZWZpbmUgSEFWRV9MSUJNIDENCg0KLyogRGVmaW5lIGlmIHlv dSBoYXZlIHRoZSBzb2NrZXQgbGlicmFyeSAoLWxzb2NrZXQpLiAgKi8NCi8q ICN1bmRlZiBIQVZFX0xJQlNPQ0tFVCAqLw0K ---377332280-1532083168-992001027=:23818 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="config.log" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBj b21waWxlcnMgd2hpbGUNCnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVi dWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuDQoNCmNvbmZp Z3VyZTo2MTI6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUNCmNvbmZpZ3Vy ZToxMDMzOiBjaGVja2luZyBmb3IgZ2NjDQpjb25maWd1cmU6MTE0NjogY2hl Y2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoY2MgICkgd29ya3MNCmNv bmZpZ3VyZToxMTYyOiBjYyAtbyBjb25mdGVzdCAgICBjb25mdGVzdC5jICAx PiY1DQpjb25maWd1cmU6MTE4ODogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBj b21waWxlciAoY2MgICkgaXMgYSBjcm9zcy1jb21waWxlcg0KY29uZmlndXJl OjExOTM6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBDDQpj b25maWd1cmU6MTIwMjogY2MgLUUgY29uZnRlc3QuYw0KY29uZmlndXJlOjEy MjE6IGNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0cyAtZw0KY29uZmlndXJl OjEyNTg6IGNoZWNraW5nIHdoZXRoZXIgbGFyZ2UgZmlsZSBzdXBwb3J0IG5l ZWRzIGV4cGxpY2l0IGVuYWJsaW5nDQpjb25maWd1cmU6MTM1OTogY2hlY2tp bmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3INCmNvbmZpZ3VyZTox MzgwOiBjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0DQpjb25maWd1cmU6MTQ4NDogY2hlY2tpbmcgZm9yIHdvcmtpbmcgY29u c3QNCmNvbmZpZ3VyZToxNTM4OiBjYyAtYyAgLU8gIGNvbmZ0ZXN0LmMgMT4m NQ0KY29uZmlndXJlOjE1NTk6IGNoZWNraW5nIGZvciBDeWd3aW4gZW52aXJv bm1lbnQNCmNvbmZpZ3VyZToxNTc1OiBjYyAtYyAgLU8gIGNvbmZ0ZXN0LmMg MT4mNQ0KImNvbmZpZ3VyZSIsIGxpbmUgMTU3MS44OiAxNTA2LTA0NSAoUykg VW5kZWNsYXJlZCBpZGVudGlmaWVyIF9fQ1lHV0lOMzJfXy4NCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgMTU2NCAiY29uZmlndXJl Ig0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQoNCmludCBtYWluKCkgew0KDQoj aWZuZGVmIF9fQ1lHV0lOX18NCiNkZWZpbmUgX19DWUdXSU5fXyBfX0NZR1dJ TjMyX18NCiNlbmRpZg0KcmV0dXJuIF9fQ1lHV0lOX187DQo7IHJldHVybiAw OyB9DQpjb25maWd1cmU6MTU5MjogY2hlY2tpbmcgZm9yIG1pbmd3MzIgZW52 aXJvbm1lbnQNCmNvbmZpZ3VyZToxNjA0OiBjYyAtYyAgLU8gIGNvbmZ0ZXN0 LmMgMT4mNQ0KImNvbmZpZ3VyZSIsIGxpbmUgMTYwMC44OiAxNTA2LTA0NSAo UykgVW5kZWNsYXJlZCBpZGVudGlmaWVyIF9fTUlOR1czMl9fLg0KY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSAxNTk3ICJjb25maWd1 cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCINCg0KaW50IG1haW4oKSB7DQpy ZXR1cm4gX19NSU5HVzMyX187DQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6 MTYyMzogY2hlY2tpbmcgZm9yIGV4ZWN1dGFibGUgc3VmZml4DQpjb25maWd1 cmU6MTYzMzogY2MgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAgMT4m NQ0KY29uZmlndXJlOjE2NTQ6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8g YWNjZXB0IEFOU0kgQw0KY29uZmlndXJlOjE2ODU6IGNjIC1jICAtTyAgIGNv bmZ0ZXN0LmMgMT4mNQ0KImNvbmZpZ3VyZSIsIGxpbmUgMTY3NS4xOiAxNTA2 LTE2NiAoUykgRGVmaW5pdGlvbiBvZiBmdW5jdGlvbiBjaG9rZSByZXF1aXJl cyBwYXJlbnRoZXNlcy4NCiJjb25maWd1cmUiLCBsaW5lIDE2NzUuNzogMTUw Ni0yNzYgKFMpIFN5bnRheCBlcnJvcjogcG9zc2libGUgbWlzc2luZyAneyc/ DQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDE2NzMg ImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0KI2lmbmRlZiBf X1NURENfXw0KY2hva2UgbWUNCiNlbmRpZgkNCg0KaW50IG1haW4oKSB7DQpp bnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsNCnN0cnVjdCBzMSB7aW50ICgq ZikgKGludCBhKTt9Ow0Kc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEp O307DQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6MTY4NTogY2MgLWMgIC1P IC1xbGFuZ2x2bD1hbnNpICBjb25mdGVzdC5jIDE+JjUNCmNvbmZpZ3VyZTox NzA1OiBjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBwcm90b3R5cGVzDQpjb25m aWd1cmU6MTczMjogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgNCmNv bmZpZ3VyZToxNzQ0OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAg LU8gICBjb25mdGVzdC5jICAxPiY1DQoiY29uZmlndXJlIiwgbGluZSAxNzM4 LjEwOiAxNTA2LTI5NiAoUykgI2luY2x1ZGUgZmlsZSA8YWxsb2NhLmg+IG5v dCBmb3VuZC4NCiJjb25maWd1cmUiLCBsaW5lIDE3NDAuOTogMTUwNi0xOTYg KFMpIEluaXRpYWxpemF0aW9uIGJldHdlZW4gdHlwZXMgInZvaWQqIiBhbmQg ImludCIgaXMgbm90IGFsbG93ZWQuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoNCiNsaW5lIDE3MzcgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJj b25mZGVmcy5oIg0KI2luY2x1ZGUgPGFsbG9jYS5oPg0KaW50IG1haW4oKSB7 DQp2b2lkICpwID0gYWxsb2NhKDIgKiBzaXplb2YoaW50KSk7DQo7IHJldHVy biAwOyB9DQpjb25maWd1cmU6MTc2NTogY2hlY2tpbmcgZm9yIGFsbG9jYQ0K Y29uZmlndXJlOjE3OTg6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0 ICAtTyAgIGNvbmZ0ZXN0LmMgIDE+JjUNCmNvbmZpZ3VyZToxOTY0OiBjaGVj a2luZyBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgdW5pb24gaW5pdGlhbGlz YXRpb24NCmNvbmZpZ3VyZToxOTc2OiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAg LU8gIGNvbmZ0ZXN0LmMgMT4mNQ0KY29uZmlndXJlOjE5OTc6IGNoZWNraW5n IGlmIHNpZ25lZCB0byB1bnNpZ25lZCBjYXN0aW5nIGlzIGJyb2tlbg0KY29u ZmlndXJlOjIwMDk6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAt TyAgIGNvbmZ0ZXN0LmMgIDE+JjUNCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOg0KI2xpbmUgMjAwNSAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNv bmZkZWZzLmgiDQptYWluKCl7cmV0dXJuKChpbnQpKHVuc2lnbmVkIGNoYXIp KChjaGFyKSAtMSkgPT0gMjU1KTt9DQpjb25maWd1cmU6MjAzMjogY2hlY2tp bmcgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIHZhcmlhYmxlLWxlbmd0aCBh cnJheXMNCmNvbmZpZ3VyZToyMDQ0OiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAg LU8gIGNvbmZ0ZXN0LmMgMT4mNQ0KImNvbmZpZ3VyZSIsIGxpbmUgMjA0MC43 OiAxNTA2LTE5NSAoUykgSW50ZWdyYWwgY29uc3RhbnQgZXhwcmVzc2lvbiB3 aXRoIGEgdmFsdWUgZ3JlYXRlciB0aGFuIHplcm8gaXMgcmVxdWlyZWQuDQoi Y29uZmlndXJlIiwgbGluZSAyMDQwLjE3OiAxNTA2LTE5NSAoUykgSW50ZWdy YWwgY29uc3RhbnQgZXhwcmVzc2lvbiB3aXRoIGEgdmFsdWUgZ3JlYXRlciB0 aGFuIHplcm8gaXMgcmVxdWlyZWQuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoNCiNsaW5lIDIwMzcgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJj b25mZGVmcy5oIg0KaW50IGZvbygpLCBuOw0KaW50IG1haW4oKSB7DQppbnQg aVtmb28oKV0sIGFbbisxXTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZToy MDY1OiBjaGVja2luZyB3aGF0IHRvIHNldCBNQVhKT0IgdG8NCmNvbmZpZ3Vy ZToyMTMxOiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAke01BS0V9DQpj b25maWd1cmU6MjE2ODogY2hlY2tpbmcgZm9yIGEgQlNEIGNvbXBhdGlibGUg aW5zdGFsbA0KY29uZmlndXJlOjIyMjQ6IGNoZWNraW5nIGZvciBtYXdrDQpj b25maWd1cmU6MjIyNDogY2hlY2tpbmcgZm9yIGdhd2sNCmNvbmZpZ3VyZToy MjUzOiBjaGVja2luZyB3aGV0aGVyIGxuIHdvcmtzDQpjb25maWd1cmU6MjI3 OTogY2hlY2tpbmcgZm9yIHlvZGwNCmNvbmZpZ3VyZToyMzE1OiBjaGVja2lu ZyBmb3IgZGlyZW50LmggdGhhdCBkZWZpbmVzIERJUg0KY29uZmlndXJlOjIz Mjg6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAgY29uZnRlc3QuYyAxPiY1 DQpjb25maWd1cmU6MjM1MzogY2hlY2tpbmcgZm9yIG9wZW5kaXIgaW4gLWxk aXINCmNvbmZpZ3VyZToyMzcyOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25m dGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGlyICAgMT4mNQ0KbGQ6IDA3MDYt MDA2IENhbm5vdCBmaW5kIG9yIG9wZW4gbGlicmFyeSBmaWxlOiAtbCBkaXIN CglsZDpvcGVuKCk6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgMjM2MSAiY29uZmln dXJlIg0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQovKiBPdmVycmlkZSBhbnkg Z2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq Lw0KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgZ2NjMg0KICAgIGJ1aWx0aW4gYW5kIHRoZW4g aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov DQpjaGFyIG9wZW5kaXIoKTsNCg0KaW50IG1haW4oKSB7DQpvcGVuZGlyKCkN CjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZToyNDM2OiBjaGVja2luZyBmb3Ig QU5TSSBDIGhlYWRlciBmaWxlcw0KY29uZmlndXJlOjI0NDk6IGNjIC1FICBj b25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3Vy ZToyNTE2OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBj b25mdGVzdC5jICAxPiY1DQpjb25maWd1cmU6MjU0MDogY2hlY2tpbmcgd2hl dGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVk ZWQNCmNvbmZpZ3VyZToyNTU0OiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAgLU8g IGNvbmZ0ZXN0LmMgMT4mNQ0KY29uZmlndXJlOjI1NzU6IGNoZWNraW5nIHdo ZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4NCmNvbmZp Z3VyZToyNjMxOiBjaGVja2luZyBmb3Igc3lzL3dhaXQuaCB0aGF0IGlzIFBP U0lYLjEgY29tcGF0aWJsZQ0KY29uZmlndXJlOjI2NTI6IGNjIC1xbGFuZ2x2 bD1hbnNpIC1jICAtTyAgY29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6MjY4 MTogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgNCmNvbmZpZ3VyZToyNjkxOiBj YyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj b25maWd1cmU6MjY4MTogY2hlY2tpbmcgZm9yIHN5cy90aW1lcy5oDQpjb25m aWd1cmU6MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciBzeXMv c2VsZWN0LmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAgY29uZnRlc3QuYyA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MjY4MTogY2hl Y2tpbmcgZm9yIHRlcm1jYXAuaA0KY29uZmlndXJlOjI2OTE6IGNjIC1FICBj b25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCiJjb25maWd1 cmUiLCBsaW5lIDI2ODcuMTA6IDE1MDYtMjk2IChTKSAjaW5jbHVkZSBmaWxl IDx0ZXJtY2FwLmg+IG5vdCBmb3VuZC4NCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOg0KI2xpbmUgMjY4NiAiY29uZmlndXJlIg0KI2luY2x1ZGUg ImNvbmZkZWZzLmgiDQojaW5jbHVkZSA8dGVybWNhcC5oPg0KY29uZmlndXJl OjI2ODE6IGNoZWNraW5nIGZvciB0ZXJtaW8uaA0KY29uZmlndXJlOjI2OTE6 IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQN CmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBmb3IgdGVybWlvcy5oDQpjb25m aWd1cmU6MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciBzeXMv cGFyYW0uaA0KY29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4v ZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVj a2luZyBmb3Igc3lzL2ZpbGlvLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAg Y29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQoiY29uZmln dXJlIiwgbGluZSAyNjg3LjEwOiAxNTA2LTI5NiAoUykgI2luY2x1ZGUgZmls ZSA8c3lzL2ZpbGlvLmg+IG5vdCBmb3VuZC4NCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOg0KI2xpbmUgMjY4NiAiY29uZmlndXJlIg0KI2luY2x1 ZGUgImNvbmZkZWZzLmgiDQojaW5jbHVkZSA8c3lzL2ZpbGlvLmg+DQpjb25m aWd1cmU6MjY4MTogY2hlY2tpbmcgZm9yIHN0cmluZy5oDQpjb25maWd1cmU6 MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0 Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciBtZW1vcnkuaA0K Y29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwg Mj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBmb3Ig bGltaXRzLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAgY29uZnRlc3QuYyA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MjY4MTogY2hl Y2tpbmcgZm9yIGZjbnRsLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAgY29u ZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6 MjY4MTogY2hlY2tpbmcgZm9yIGxpYmMuaA0KY29uZmlndXJlOjI2OTE6IGNj IC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCiJj b25maWd1cmUiLCBsaW5lIDI2ODcuMTA6IDE1MDYtMjk2IChTKSAjaW5jbHVk ZSBmaWxlIDxsaWJjLmg+IG5vdCBmb3VuZC4NCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOg0KI2xpbmUgMjY4NiAiY29uZmlndXJlIg0KI2luY2x1 ZGUgImNvbmZkZWZzLmgiDQojaW5jbHVkZSA8bGliYy5oPg0KY29uZmlndXJl OjI2ODE6IGNoZWNraW5nIGZvciBzeXMvdXRzbmFtZS5oDQpjb25maWd1cmU6 MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0 Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciBzeXMvcmVzb3Vy Y2UuaA0KY29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4vZGV2 L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVja2lu ZyBmb3IgbG9jYWxlLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAgY29uZnRl c3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MjY4 MTogY2hlY2tpbmcgZm9yIGVycm5vLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAt RSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25m aWd1cmU6MjY4MTogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oDQpjb25maWd1cmU6 MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0 Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciB1bmlzdGQuaA0K Y29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwg Mj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBmb3Ig c3lzL2NhcGFiaWxpdHkuaA0KY29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25m dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCiJjb25maWd1cmUi LCBsaW5lIDI2ODcuMTA6IDE1MDYtMjk2IChTKSAjaW5jbHVkZSBmaWxlIDxz eXMvY2FwYWJpbGl0eS5oPiBub3QgZm91bmQuDQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoNCiNsaW5lIDI2ODYgImNvbmZpZ3VyZSINCiNpbmNs dWRlICJjb25mZGVmcy5oIg0KI2luY2x1ZGUgPHN5cy9jYXBhYmlsaXR5Lmg+ DQpjb25maWd1cmU6MjY4MTogY2hlY2tpbmcgZm9yIHV0bXAuaA0KY29uZmln dXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25m dGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBmb3IgdXRtcHgu aA0KY29uZmlndXJlOjI2OTE6IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251 bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBm b3Igc3lzL3R5cGVzLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAtRSAgY29uZnRl c3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MjY4 MTogY2hlY2tpbmcgZm9yIHB3ZC5oDQpjb25maWd1cmU6MjY5MTogY2MgLUUg IGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmln dXJlOjI2ODE6IGNoZWNraW5nIGZvciBncnAuaA0KY29uZmlndXJlOjI2OTE6 IGNjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQN CmNvbmZpZ3VyZToyNjgxOiBjaGVja2luZyBmb3IgcG9sbC5oDQpjb25maWd1 cmU6MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0 ZXN0Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5nIGZvciBzeXMvbW1h bi5oDQpjb25maWd1cmU6MjY5MTogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYv bnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjI2ODE6IGNoZWNraW5n IGZvciBuZXRpbmV0L2luX3N5c3RtLmgNCmNvbmZpZ3VyZToyNjkxOiBjYyAt RSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25m aWd1cmU6MjcyMjogY2hlY2tpbmcgZm9yIGRsZmNuLmgNCmNvbmZpZ3VyZToy NzMyOiBjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0DQpjb25maWd1cmU6Mjc2MjogY2hlY2tpbmcgZm9yIGRsLmgNCmNvbmZp Z3VyZToyNzcyOiBjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29u ZnRlc3Qub3V0DQoiY29uZmlndXJlIiwgbGluZSAyNzY4LjEwOiAxNTA2LTI5 NiAoUykgI2luY2x1ZGUgZmlsZSA8ZGwuaD4gbm90IGZvdW5kLg0KY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSAyNzY3ICJjb25maWd1 cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCINCiNpbmNsdWRlIDxkbC5oPg0K Y29uZmlndXJlOjI4MDI6IGNoZWNraW5nIGZvciBjb25mbGljdHMgaW4gc3lz L3RpbWUuaCBhbmQgc3lzL3NlbGVjdC5oDQpjb25maWd1cmU6MjgxNTogY2Mg LXFsYW5nbHZsPWFuc2kgLWMgIC1PICBjb25mdGVzdC5jIDE+JjUNCmNvbmZp Z3VyZToyODM3OiBjaGVja2luZyBQT1NJWCB0ZXJtaW9zDQpjb25maWd1cmU6 Mjg1MjogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29u ZnRlc3QuYyAgMT4mNQ0KY29uZmlndXJlOjI4Njg6IGNoZWNraW5nIFRJT0NH V0lOU1ogaW4gdGVybWlvcy5oDQpjb25maWd1cmU6Mjg4MTogY2MgLXFsYW5n bHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAgMT4mNQ0K ImNvbmZpZ3VyZSIsIGxpbmUgMjg3Ny45OiAxNTA2LTA0NSAoUykgVW5kZWNs YXJlZCBpZGVudGlmaWVyIFRJT0NHV0lOU1ouDQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoNCiNsaW5lIDI4NzMgImNvbmZpZ3VyZSINCiNpbmNs dWRlICJjb25mZGVmcy5oIg0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2lu Y2x1ZGUgPHRlcm1pb3MuaD4NCmludCBtYWluKCkgew0KaW50IHggPSBUSU9D R1dJTlNaOw0KOyByZXR1cm4gMDsgfQ0KY29uZmlndXJlOjI5MDA6IGNoZWNr aW5nIFRJT0NHV0lOU1ogaW4gc3lzL2lvY3RsLmgNCmNvbmZpZ3VyZToyOTEz OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVz dC5jICAxPiY1DQpjb25maWd1cmU6MjkzNjogY2hlY2tpbmcgZm9yIHN5cy9w dGVtLmgNCmNvbmZpZ3VyZToyOTQ2OiBjYyAtRSAgY29uZnRlc3QuYyA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0DQoiY29uZmlndXJlIiwgbGluZSAyOTQy LjEwOiAxNTA2LTI5NiAoUykgI2luY2x1ZGUgZmlsZSA8c3lzL3B0ZW0uaD4g bm90IGZvdW5kLg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQoj bGluZSAyOTQxICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCIN CiNpbmNsdWRlIDxzeXMvcHRlbS5oPg0KY29uZmlndXJlOjI5NzM6IGNoZWNr aW5nIGZvciBwcmludGYgaW4gLWxjDQpjb25maWd1cmU6Mjk5MjogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGMg ICAxPiY1DQpjb25maWd1cmU6MzAxNDogY2hlY2tpbmcgZm9yIHBvdyBpbiAt bG0NCmNvbmZpZ3VyZTozMDMzOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25m dGVzdCAgLU8gICBjb25mdGVzdC5jIC1sbSAgIC1sYyAxPiY1DQpjb25maWd1 cmU6MzE0MTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyB0Z2V0 ZW50DQpjb25maWd1cmU6MzE1OTogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29u ZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbG0gIC1sYyAxPiY1DQpsZDogMDcx MS0zMTcgRVJST1I6IFVuZGVmaW5lZCBzeW1ib2w6IC50Z2V0ZW50DQpsZDog MDcxMS0zNDUgVXNlIHRoZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0IG9wdGlv biB0byBvYnRhaW4gbW9yZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgMzE0OCAiY29uZmlndXJlIg0KI2lu Y2x1ZGUgImNvbmZkZWZzLmgiDQovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KLyogV2Ug dXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgZ2NjMg0KICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQpjaGFyIHRn ZXRlbnQoKTsNCg0KaW50IG1haW4oKSB7DQp0Z2V0ZW50KCkNCjsgcmV0dXJu IDA7IH0NCmNvbmZpZ3VyZTozMTgxOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBj b25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sY3Vyc2VzICAtbG0gIC1sYyAx PiY1DQpjb25maWd1cmU6MzIwNzogY2hlY2tpbmcgZm9yIGN1cnNlcy5oDQpj b25maWd1cmU6MzIxNzogY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjMyODE6IGNoZWNraW5nIGZvciB0 ZXJtLmgNCmNvbmZpZ3VyZTozMjkxOiBjYyAtRSAgY29uZnRlc3QuYyA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MzMxMjogY2hlY2tp bmcgaWYgdGVybS5oIG5lZWRzIGN1cnNlcy5oDQpjb25maWd1cmU6MzMyMTog Y2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBjb25mdGVzdC5jIDE+JjUNCiIv dXNyL2luY2x1ZGUvdGVybS5oIiwgbGluZSAxMjA5Ljk6IDE1MDYtMDQ2IChT KSBTeW50YXggZXJyb3IuDQoiL3Vzci9pbmNsdWRlL3Rlcm0uaCIsIGxpbmUg MTIzOS45OiAxNTA2LTA0NiAoUykgU3ludGF4IGVycm9yLg0KIi91c3IvaW5j bHVkZS90ZXJtLmgiLCBsaW5lIDEyNTYuOTogMTUwNi0wNDYgKFMpIFN5bnRh eCBlcnJvci4NCiIvdXNyL2luY2x1ZGUvdGVybS5oIiwgbGluZSAxMjY3Ljk6 IDE1MDYtMDQ2IChTKSBTeW50YXggZXJyb3IuDQoiL3Vzci9pbmNsdWRlL3Rl cm0uaCIsIGxpbmUgMTI3OS45OiAxNTA2LTA0NiAoUykgU3ludGF4IGVycm9y Lg0KIi91c3IvaW5jbHVkZS90ZXJtLmgiLCBsaW5lIDEyODEuOTogMTUwNi0w NDYgKFMpIFN5bnRheCBlcnJvci4NCiIvdXNyL2luY2x1ZGUvdGVybS5oIiwg bGluZSAxMjg1Ljk6IDE1MDYtMDQ2IChTKSBTeW50YXggZXJyb3IuDQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDMzMTQgImNvbmZp Z3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0KI2luY2x1ZGUgPHRlcm0u aD4NCmludCBtYWluKCkgew0KY2hhciAqKnRlc3QgPSBib29sY29kZXM7DQo7 IHJldHVybiAwOyB9DQpjb25maWd1cmU6MzM0MDogY2MgLXFsYW5nbHZsPWFu c2kgLWMgIC1PICBjb25mdGVzdC5jIDE+JjUNCmNvbmZpZ3VyZTozMzYyOiBj aGVja2luZyBpZiBib29sY29kZXMgaXMgYXZhaWxhYmxlDQpjb25maWd1cmU6 MzM3NDogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29u ZnRlc3QuYyAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDogMDcxMS0zMTcg RVJST1I6IFVuZGVmaW5lZCBzeW1ib2w6IGJvb2xjb2Rlcw0KbGQ6IDA3MTEt MzQ1IFVzZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBvcHRpb24gdG8g b2J0YWluIG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoNCiNsaW5lIDMzNjQgImNvbmZpZ3VyZSINCiNpbmNsdWRl ICJjb25mZGVmcy5oIg0KI2lmZGVmIFRFUk1fSF9ORUVEU19DVVJTRVNfSA0K I2luY2x1ZGUgPGN1cnNlcy5oPg0KI2VuZGlmDQojaW5jbHVkZSA8dGVybS5o Pg0KaW50IG1haW4oKSB7DQpjaGFyICoqdGVzdCA9IGJvb2xjb2RlczsgcHJp bnRmKCp0ZXN0KTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTozMzg5OiBj aGVja2luZyBpZiBudW1jb2RlcyBpcyBhdmFpbGFibGUNCmNvbmZpZ3VyZToz NDAxOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25m dGVzdC5jIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBF UlJPUjogVW5kZWZpbmVkIHN5bWJvbDogbnVtY29kZXMNCmxkOiAwNzExLTM0 NSBVc2UgdGhlIC1ibG9hZG1hcCBvciAtYm5vcXVpZXQgb3B0aW9uIHRvIG9i dGFpbiBtb3JlIGluZm9ybWF0aW9uLg0KY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6DQojbGluZSAzMzkxICJjb25maWd1cmUiDQojaW5jbHVkZSAi Y29uZmRlZnMuaCINCiNpZmRlZiBURVJNX0hfTkVFRFNfQ1VSU0VTX0gNCiNp bmNsdWRlIDxjdXJzZXMuaD4NCiNlbmRpZg0KI2luY2x1ZGUgPHRlcm0uaD4N CmludCBtYWluKCkgew0KY2hhciAqKnRlc3QgPSBudW1jb2RlczsgcHJpbnRm KCp0ZXN0KTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTozNDE2OiBjaGVj a2luZyBpZiBzdHJjb2RlcyBpcyBhdmFpbGFibGUNCmNvbmZpZ3VyZTozNDI4 OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVz dC5jIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJP UjogVW5kZWZpbmVkIHN5bWJvbDogc3RyY29kZXMNCmxkOiAwNzExLTM0NSBV c2UgdGhlIC1ibG9hZG1hcCBvciAtYm5vcXVpZXQgb3B0aW9uIHRvIG9idGFp biBtb3JlIGluZm9ybWF0aW9uLg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6DQojbGluZSAzNDE4ICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29u ZmRlZnMuaCINCiNpZmRlZiBURVJNX0hfTkVFRFNfQ1VSU0VTX0gNCiNpbmNs dWRlIDxjdXJzZXMuaD4NCiNlbmRpZg0KI2luY2x1ZGUgPHRlcm0uaD4NCmlu dCBtYWluKCkgew0KY2hhciAqKnRlc3QgPSBzdHJjb2RlczsgcHJpbnRmKCp0 ZXN0KTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTozNDQzOiBjaGVja2lu ZyBpZiBib29sbmFtZXMgaXMgYXZhaWxhYmxlDQpjb25maWd1cmU6MzQ1Mzog Y2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3Qu YyAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDogMDcxMS0zMTcgRVJST1I6 IFVuZGVmaW5lZCBzeW1ib2w6IGJvb2xuYW1lcw0KbGQ6IDA3MTEtMzQ1IFVz ZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBvcHRpb24gdG8gb2J0YWlu IG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoNCiNsaW5lIDM0NDUgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25m ZGVmcy5oIg0KI2luY2x1ZGUgPGN1cnNlcy5oPg0KI2luY2x1ZGUgPHRlcm0u aD4NCmludCBtYWluKCkgew0KY2hhciAqKnRlc3QgPSBib29sbmFtZXM7IHBy aW50ZigqdGVzdCk7DQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6MzQ2ODog Y2hlY2tpbmcgaWYgbnVtbmFtZXMgaXMgYXZhaWxhYmxlDQpjb25maWd1cmU6 MzQ3ODogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29u ZnRlc3QuYyAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDogMDcxMS0zMTcg RVJST1I6IFVuZGVmaW5lZCBzeW1ib2w6IG51bW5hbWVzDQpsZDogMDcxMS0z NDUgVXNlIHRoZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0IG9wdGlvbiB0byBv YnRhaW4gbW9yZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOg0KI2xpbmUgMzQ3MCAiY29uZmlndXJlIg0KI2luY2x1ZGUg ImNvbmZkZWZzLmgiDQojaW5jbHVkZSA8Y3Vyc2VzLmg+DQojaW5jbHVkZSA8 dGVybS5oPg0KaW50IG1haW4oKSB7DQpjaGFyICoqdGVzdCA9IG51bW5hbWVz OyBwcmludGYoKnRlc3QpOw0KOyByZXR1cm4gMDsgfQ0KY29uZmlndXJlOjM0 OTM6IGNoZWNraW5nIGlmIHN0cm5hbWVzIGlzIGF2YWlsYWJsZQ0KY29uZmln dXJlOjM1MDM6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAg IGNvbmZ0ZXN0LmMgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KbGQ6IDA3MTEt MzE3IEVSUk9SOiBVbmRlZmluZWQgc3ltYm9sOiBzdHJuYW1lcw0KbGQ6IDA3 MTEtMzQ1IFVzZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBvcHRpb24g dG8gb2J0YWluIG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoNCiNsaW5lIDM0OTUgImNvbmZpZ3VyZSINCiNpbmNs dWRlICJjb25mZGVmcy5oIg0KI2luY2x1ZGUgPGN1cnNlcy5oPg0KI2luY2x1 ZGUgPHRlcm0uaD4NCmludCBtYWluKCkgew0KY2hhciAqKnRlc3QgPSBzdHJu YW1lczsgcHJpbnRmKCp0ZXN0KTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3Vy ZTozNTI4OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHlwX2Fs bA0KY29uZmlndXJlOjM1NDY6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0 ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0K Y29uZmlndXJlOjM1OTU6IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbA0K Y29uZmlndXJlOjM2MTQ6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0 ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAgLWxjdXJzZXMgLWxtICAtbGMgMT4m NQ0KY29uZmlndXJlOjM2NDQ6IGNoZWNraW5nIGZvciBjYXBfZ2V0X3Byb2Mg aW4gLWxjYXANCmNvbmZpZ3VyZTozNjYzOiBjYyAtcWxhbmdsdmw9YW5zaSAt byBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sY2FwICAtbGRsIC1sY3Vy c2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzA2LTAwNiBDYW5ub3QgZmluZCBv ciBvcGVuIGxpYnJhcnkgZmlsZTogLWwgY2FwDQoJbGQ6b3BlbigpOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5DQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoNCiNsaW5lIDM2NTIgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJj b25mZGVmcy5oIg0KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCi8qIFdlIHVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IGdjYzINCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLw0KY2hhciBjYXBfZ2V0X3By b2MoKTsNCg0KaW50IG1haW4oKSB7DQpjYXBfZ2V0X3Byb2MoKQ0KOyByZXR1 cm4gMDsgfQ0KY29uZmlndXJlOjM2OTI6IGNoZWNraW5nIGZvciBzb2NrZXQg aW4gLWxzb2NrZXQNCmNvbmZpZ3VyZTozNzExOiBjYyAtcWxhbmdsdmw9YW5z aSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sc29ja2V0ICAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzA2LTAwNiBDYW5ub3Qg ZmluZCBvciBvcGVuIGxpYnJhcnkgZmlsZTogLWwgc29ja2V0DQoJbGQ6b3Bl bigpOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5DQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDM3MDAgImNvbmZpZ3VyZSINCiNp bmNsdWRlICJjb25mZGVmcy5oIg0KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCi8qIFdl IHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIGdjYzINCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLw0KY2hhciBz b2NrZXQoKTsNCg0KaW50IG1haW4oKSB7DQpzb2NrZXQoKQ0KOyByZXR1cm4g MDsgfQ0KY29uZmlndXJlOjM3NDA6IGNoZWNraW5nIGlmIGFuIGluY2x1ZGUg ZmlsZSBkZWZpbmVzIG9zcGVlZA0KY29uZmlndXJlOjM3NTg6IGNjIC1xbGFu Z2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAt bGN1cnNlcyAtbG0gIC1sYyAxPiY1DQoiY29uZmlndXJlIiwgbGluZSAzNzU0 LjE6IDE1MDYtMDQ1IChTKSBVbmRlY2xhcmVkIGlkZW50aWZpZXIgb3NwZWVk Lg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSAzNzQ1 ICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCINCiNpbmNsdWRl IDxzeXMvdHlwZXMuaD4NCiNpZiBIQVZFX1RFUk1JT1NfSA0KI2luY2x1ZGUg PHRlcm1pb3MuaD4NCiNlbmRpZg0KI2lmIEhBVkVfVEVSTUNBUF9IDQojaW5j bHVkZSA8dGVybWNhcC5oPg0KI2VuZGlmDQppbnQgbWFpbigpIHsNCm9zcGVl ZCA9IDA7DQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6Mzc3NDogY2hlY2tp bmcgaWYgeW91IG11c3QgZGVmaW5lIG9zcGVlZA0KY29uZmlndXJlOjM3ODY6 IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0 LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6Mzgx OTogY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzDQpj b25maWd1cmU6Mzg0MTogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBjb25m dGVzdC5jIDE+JjUNCmNvbmZpZ3VyZTozODYwOiBjaGVja2luZyBmb3IgcGlk X3QNCmNvbmZpZ3VyZTozODkzOiBjaGVja2luZyBmb3Igb2ZmX3QNCmNvbmZp Z3VyZTozOTI2OiBjaGVja2luZyBmb3IgaW5vX3QNCmNvbmZpZ3VyZTozOTU5 OiBjaGVja2luZyBmb3IgbW9kZV90DQpjb25maWd1cmU6Mzk5MjogY2hlY2tp bmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oDQpjb25maWd1cmU6NDAyNjog Y2hlY2tpbmcgZm9yIHNpemVfdA0KY29uZmlndXJlOjQwNjA6IGNoZWNraW5n IGlmIGxvbmcgaXMgNjQgYml0cw0KY29uZmlndXJlOjQwNzI6IGNjIC1xbGFu Z2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAt bGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoNCiNsaW5lIDQwNjggImNvbmZpZ3VyZSINCiNpbmNsdWRlICJj b25mZGVmcy5oIg0KaW50IG1haW4oKSB7IHJldHVybiBzaXplb2YobG9uZykg PCA4OyB9DQpjb25maWd1cmU6NDA5NTogY2hlY2tpbmcgaWYgb2ZmX3QgaXMg NjQgYml0DQpjb25maWd1cmU6NDExMTogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xp bmUgNDEwMyAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQoN CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCg0KbWFpbigpIHsgcmV0dXJuIHNp emVvZihvZmZfdCkgPCA4OyB9DQoNCmNvbmZpZ3VyZTo0MTM0OiBjaGVja2lu ZyBpZiBpbm9fdCBpcyA2NCBiaXQNCmNvbmZpZ3VyZTo0MTUwOiBjYyAtcWxh bmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwg LWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6DQojbGluZSA0MTQyICJjb25maWd1cmUiDQojaW5jbHVkZSAi Y29uZmRlZnMuaCINCg0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KDQptYWlu KCkgeyByZXR1cm4gc2l6ZW9mKGlub190KSA8IDg7IH0NCg0KY29uZmlndXJl OjQxNzU6IGNoZWNraW5nIGlmIGNvbXBpbGVyIGhhcyBhIDY0IGJpdCB0eXBl DQpjb25maWd1cmU6NDI0MDogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRl c3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+ JjUNCmNvbmZpZ3VyZTo0Mzc5OiBjaGVja2luZyBmb3IgYSBjb3JyZXNwb25k aW5nIHVuc2lnbmVkIDY0IGJpdCB0eXBlDQpjb25maWd1cmU6NDQwNjogY2Mg LXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAt bGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo0NDcxOiBj aGVja2luZyBmb3Igc2lnc2V0X3QNCmNvbmZpZ3VyZTo0NDg0OiBjYyAtcWxh bmdsdmw9YW5zaSAtYyAgLU8gIGNvbmZ0ZXN0LmMgMT4mNQ0KY29uZmlndXJl OjQ1MDU6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdGltZXpvbmUNCmNvbmZpZ3Vy ZTo0NTIxOiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAgLU8gIGNvbmZ0ZXN0LmMg MT4mNQ0KY29uZmlndXJlOjQ1NDQ6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdXRt cA0KY29uZmlndXJlOjQ1NjM6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAg Y29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6NDU4NTogY2hlY2tpbmcgZm9y IHN0cnVjdCB1dG1weA0KY29uZmlndXJlOjQ2MDQ6IGNjIC1xbGFuZ2x2bD1h bnNpIC1jICAtTyAgY29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6NDYyNzog Y2hlY2tpbmcgZm9yIHV0X2hvc3QgaW4gc3RydWN0IHV0bXANCmNvbmZpZ3Vy ZTo0NjQ2OiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAgLU8gIGNvbmZ0ZXN0LmMg MT4mNQ0KY29uZmlndXJlOjQ2Njg6IGNoZWNraW5nIGZvciB1dF9ob3N0IGlu IHN0cnVjdCB1dG1weA0KY29uZmlndXJlOjQ2ODc6IGNjIC1xbGFuZ2x2bD1h bnNpIC1jICAtTyAgY29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6NDcwOTog Y2hlY2tpbmcgZm9yIHV0X3h0aW1lIGluIHN0cnVjdCB1dG1weA0KY29uZmln dXJlOjQ3Mjg6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAgY29uZnRlc3Qu YyAxPiY1DQoiY29uZmlndXJlIiwgbGluZSA0NzI0LjMxOiAxNTA2LTAyMiAo UykgInV0X3h0aW1lIiBpcyBub3QgYSBtZW1iZXIgb2YgInN0cnVjdCB1dG1w eCIuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDQ3 MTQgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0KDQojaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSA0KIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4N CiNlbmRpZg0KI2lmZGVmIEhBVkVfVVRNUFhfSA0KIyBpbmNsdWRlIDx1dG1w eC5oPg0KI2VuZGlmDQoNCmludCBtYWluKCkgew0Kc3RydWN0IHV0bXB4IHRl c3R2YXI7IHRlc3R2YXIudXRfeHRpbWU7DQo7IHJldHVybiAwOyB9DQpjb25m aWd1cmU6NDc1MDogY2hlY2tpbmcgZm9yIHV0X3R2IGluIHN0cnVjdCB1dG1w eA0KY29uZmlndXJlOjQ3Njk6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAg Y29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6NDc5MjogY2hlY2tpbmcgZm9y IGRfaW5vIGluIHN0cnVjdCBkaXJlbnQNCmNvbmZpZ3VyZTo0ODExOiBjYyAt cWxhbmdsdmw9YW5zaSAtYyAgLU8gIGNvbmZ0ZXN0LmMgMT4mNQ0KY29uZmln dXJlOjQ4MzM6IGNoZWNraW5nIGZvciBkX3N0YXQgaW4gc3RydWN0IGRpcmVu dA0KY29uZmlndXJlOjQ4NTI6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAg Y29uZnRlc3QuYyAxPiY1DQoiY29uZmlndXJlIiwgbGluZSA0ODQ4LjMyOiAx NTA2LTAyMiAoUykgImRfc3RhdCIgaXMgbm90IGEgbWVtYmVyIG9mICJzdHJ1 Y3QgZGlyZW50Ii4NCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0K I2xpbmUgNDgzOCAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZkZWZzLmgi DQoNCiNpZmRlZiBIQVZFX1NZU19UWVBFU19IDQojIGluY2x1ZGUgPHN5cy90 eXBlcy5oPg0KI2VuZGlmDQojaWZkZWYgSEFWRV9ESVJFTlRfSA0KIyBpbmNs dWRlIDxkaXJlbnQuaD4NCiNlbmRpZg0KDQppbnQgbWFpbigpIHsNCnN0cnVj dCBkaXJlbnQgdGVzdHZhcjsgdGVzdHZhci5kX3N0YXQ7DQo7IHJldHVybiAw OyB9DQpjb25maWd1cmU6NDg3NDogY2hlY2tpbmcgZm9yIGRfaW5vIGluIHN0 cnVjdCBkaXJlY3QNCmNvbmZpZ3VyZTo0ODk5OiBjYyAtcWxhbmdsdmw9YW5z aSAtYyAgLU8gIGNvbmZ0ZXN0LmMgMT4mNQ0KImNvbmZpZ3VyZSIsIGxpbmUg NDg5NS44OiAxNTA2LTAwNyAoUykgInN0cnVjdCBkaXJlY3QiIGlzIHVuZGVm aW5lZC4NCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUg NDg3OSAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQoNCiNp ZmRlZiBIQVZFX1NZU19UWVBFU19IDQojIGluY2x1ZGUgPHN5cy90eXBlcy5o Pg0KI2VuZGlmDQojaWZkZWYgSEFWRV9TWVNfTkRJUl9IDQojIGluY2x1ZGUg PHN5cy9uZGlyLmg+DQojZW5kaWYNCiNpZmRlZiBIQVZFX1NZU19ESVJfSA0K IyBpbmNsdWRlIDxzeXMvZGlyLmg+DQojZW5kaWYNCiNpZmRlZiBIQVZFX05E SVJfSA0KIyBpbmNsdWRlIDxuZGlyLmg+DQojZW5kaWYNCg0KaW50IG1haW4o KSB7DQpzdHJ1Y3QgZGlyZWN0IHRlc3R2YXI7IHRlc3R2YXIuZF9pbm87DQo7 IHJldHVybiAwOyB9DQpjb25maWd1cmU6NDkyMTogY2hlY2tpbmcgZm9yIGRf c3RhdCBpbiBzdHJ1Y3QgZGlyZWN0DQpjb25maWd1cmU6NDk0NjogY2MgLXFs YW5nbHZsPWFuc2kgLWMgIC1PICBjb25mdGVzdC5jIDE+JjUNCiJjb25maWd1 cmUiLCBsaW5lIDQ5NDIuODogMTUwNi0wMDcgKFMpICJzdHJ1Y3QgZGlyZWN0 IiBpcyB1bmRlZmluZWQuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoNCiNsaW5lIDQ5MjYgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVm cy5oIg0KDQojaWZkZWYgSEFWRV9TWVNfVFlQRVNfSA0KIyBpbmNsdWRlIDxz eXMvdHlwZXMuaD4NCiNlbmRpZg0KI2lmZGVmIEhBVkVfU1lTX05ESVJfSA0K IyBpbmNsdWRlIDxzeXMvbmRpci5oPg0KI2VuZGlmDQojaWZkZWYgSEFWRV9T WVNfRElSX0gNCiMgaW5jbHVkZSA8c3lzL2Rpci5oPg0KI2VuZGlmDQojaWZk ZWYgSEFWRV9ORElSX0gNCiMgaW5jbHVkZSA8bmRpci5oPg0KI2VuZGlmDQoN CmludCBtYWluKCkgew0Kc3RydWN0IGRpcmVjdCB0ZXN0dmFyOyB0ZXN0dmFy LmRfc3RhdDsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo0OTY5OiBjaGVj a2luZyBmb3Igc2luNl9zY29wZV9pZCBpbiBzdHJ1Y3Qgc29ja2FkZHJfaW42 DQpjb25maWd1cmU6NDk4NjogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBj b25mdGVzdC5jIDE+JjUNCiJjb25maWd1cmUiLCBsaW5lIDQ5ODIuMzg6IDE1 MDYtMDIyIChTKSAic2luNl9zY29wZV9pZCIgaXMgbm90IGEgbWVtYmVyIG9m ICJzdHJ1Y3Qgc29ja2FkZHJfaW42Ii4NCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOg0KI2xpbmUgNDk3NCAiY29uZmlndXJlIg0KI2luY2x1ZGUg ImNvbmZkZWZzLmgiDQoNCiNpZmRlZiBIQVZFX1NZU19UWVBFU19IDQojIGlu Y2x1ZGUgPHN5cy90eXBlcy5oPg0KI2VuZGlmDQojaW5jbHVkZSA8bmV0aW5l dC9pbi5oPg0KDQppbnQgbWFpbigpIHsNCnN0cnVjdCBzb2NrYWRkcl9pbjYg dGVzdHZhcjsgdGVzdHZhci5zaW42X3Njb3BlX2lkOw0KOyByZXR1cm4gMDsg fQ0KY29uZmlndXJlOjUwMDk6IGNoZWNraW5nIGlmIHdlIG5lZWQgb3VyIG93 biBoX2Vycm5vDQpjb25maWd1cmU6NTAyMTogY2MgLXFsYW5nbHZsPWFuc2kg LW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1s bSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc3Ry ZnRpbWUNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBj b25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAt bGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBkaWZmdGlt ZQ0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0 ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAx PiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIGdldHRpbWVvZmRh eQ0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0 ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAx PiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIHNlbGVjdA0KY29u ZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAt TyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpj b25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIHBvbGwNCmNvbmZpZ3VyZTo1 MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25m dGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJl OjUwNjk6IGNoZWNraW5nIGZvciByZWFkbGluaw0KY29uZmlndXJlOjUwOTc6 IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0 LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2 OTogY2hlY2tpbmcgZm9yIGxzdGF0DQpjb25maWd1cmU6NTA5NzogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVj a2luZyBmb3IgbGNob3duDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZs PWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vy c2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBm b3IgZmFjY2Vzc3gNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5z aSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMg LWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBm Y2hkaXINCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBj b25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAt bGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBmdHJ1bmNh dGUNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25m dGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMg MT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBmc2Vla28NCmNv bmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAg LU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0K Y29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBmdGVsbG8NCmNvbmZpZ3Vy ZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBj b25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmln dXJlOjUwNjk6IGNoZWNraW5nIGZvciBta2ZpZm8NCmNvbmZpZ3VyZTo1MDk3 OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVz dC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUw Njk6IGNoZWNraW5nIGZvciBfbWt0ZW1wDQpjb25maWd1cmU6NTA5NzogY2Mg LXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAt bGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJP UjogVW5kZWZpbmVkIHN5bWJvbDogLl9ta3RlbXANCmxkOiAwNzExLTM0NSBV c2UgdGhlIC1ibG9hZG1hcCBvciAtYm5vcXVpZXQgb3B0aW9uIHRvIG9idGFp biBtb3JlIGluZm9ybWF0aW9uLg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6DQojbGluZSA1MDc0ICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29u ZmRlZnMuaCINCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywNCiAgICB3aGlj aCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9ta3RlbXAoKTsgYmVsb3cuICAq Lw0KI2luY2x1ZGUgPGFzc2VydC5oPg0KLyogT3ZlcnJpZGUgYW55IGdjYzIg aW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCi8q IFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIGdjYzINCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLw0KY2hh ciBfbWt0ZW1wKCk7DQoNCmludCBtYWluKCkgew0KDQovKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzDQogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCiAgICBzb21ldGhp bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu IGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVkIChfX3N0dWJfX21rdGVtcCkgfHwg ZGVmaW5lZCAoX19zdHViX19fX21rdGVtcCkNCmNob2tlIG1lDQojZWxzZQ0K X21rdGVtcCgpOw0KI2VuZGlmDQoNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3Vy ZTo1MDY5OiBjaGVja2luZyBmb3Igd2FpdHBpZA0KY29uZmlndXJlOjUwOTc6 IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0 LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2 OTogY2hlY2tpbmcgZm9yIHdhaXQzDQpjb25maWd1cmU6NTA5NzogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVj a2luZyBmb3Igc2lnYWN0aW9uDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5n bHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1s Y3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2lu ZyBmb3Igc2lnYmxvY2sNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9 YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJz ZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZv ciBzaWdob2xkDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kg LW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1s bSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2ln cmVsc2UNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBj b25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAt bGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBzaWdzZXRt YXNrDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29u ZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxj IDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2lncHJvY21h c2sNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25m dGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMg MT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBraWxscGcNCmNv bmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAg LU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0K Y29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBzZXRwZ2lkDQpjb25maWd1 cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAg Y29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZp Z3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2V0cGdycA0KY29uZmlndXJlOjUw OTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0 ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6 NTA2OTogY2hlY2tpbmcgZm9yIHRjc2V0cGdycA0KY29uZmlndXJlOjUwOTc6 IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0 LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2 OTogY2hlY2tpbmcgZm9yIHRjZ2V0YXR0cg0KY29uZmlndXJlOjUwOTc6IGNj IC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMg LWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2OTog Y2hlY2tpbmcgZm9yIG5pY2UNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmds dmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxj dXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5n IGZvciBnZXRob3N0bmFtZQ0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2 bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1 cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcg Zm9yIGdldGhvc3RieW5hbWUyDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5n bHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1s Y3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2lu ZyBmb3IgZ2V0aXBub2RlYnluYW1lDQpjb25maWd1cmU6NTA5NzogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJPUjog VW5kZWZpbmVkIHN5bWJvbDogLmdldGlwbm9kZWJ5bmFtZQ0KbGQ6IDA3MTEt MzQ1IFVzZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBvcHRpb24gdG8g b2J0YWluIG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoNCiNsaW5lIDUwNzQgImNvbmZpZ3VyZSINCiNpbmNsdWRl ICJjb25mZGVmcy5oIg0KLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLA0KICAg IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0aXBub2RlYnluYW1l KCk7IGJlbG93LiAgKi8NCiNpbmNsdWRlIDxhc3NlcnQuaD4NCi8qIE92ZXJy aWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4gICovDQovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQogICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8NCmNoYXIgZ2V0aXBub2RlYnluYW1lKCk7DQoNCmludCBtYWlu KCkgew0KDQovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQogICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQNCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVk IChfX3N0dWJfZ2V0aXBub2RlYnluYW1lKSB8fCBkZWZpbmVkIChfX3N0dWJf X19nZXRpcG5vZGVieW5hbWUpDQpjaG9rZSBtZQ0KI2Vsc2UNCmdldGlwbm9k ZWJ5bmFtZSgpOw0KI2VuZGlmDQoNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3Vy ZTo1MDY5OiBjaGVja2luZyBmb3IgaW5ldF9hdG9uDQpjb25maWd1cmU6NTA5 NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRl c3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1 MDY5OiBjaGVja2luZyBmb3IgaW5ldF9wdG9uDQpjb25maWd1cmU6NTA5Nzog Y2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3Qu YyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5 OiBjaGVja2luZyBmb3IgaW5ldF9udG9wDQpjb25maWd1cmU6NTA5NzogY2Mg LXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAt bGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBj aGVja2luZyBmb3IgZ2V0bG9naW4NCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxh bmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwg LWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNr aW5nIGZvciBnZXRwd2VudA0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2 bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1 cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcg Zm9yIGdldHB3bmFtDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFu c2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2Vz IC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Ig Z2V0cHd1aWQNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5zaSAt byBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxt ICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBnZXRn cmdpZA0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNv bmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1s YyAxPiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIGdldGdybmFt DQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRl c3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+ JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3IgaW5pdGdyb3Vwcw0K Y29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0 ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1 DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIG5pc19saXN0DQpjb25m aWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1P ICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxk OiAwNzExLTMxNyBFUlJPUjogVW5kZWZpbmVkIHN5bWJvbDogLm5pc19saXN0 DQpsZDogMDcxMS0zNDUgVXNlIHRoZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0 IG9wdGlvbiB0byBvYnRhaW4gbW9yZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgNTA3NCAiY29uZmlndXJl Ig0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQovKiBTeXN0ZW0gaGVhZGVyIHRv IGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsDQogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBuaXNf bGlzdCgpOyBiZWxvdy4gICovDQojaW5jbHVkZSA8YXNzZXJ0Lmg+DQovKiBP dmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuICAqLw0KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMg0KICAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovDQpjaGFyIG5pc19saXN0KCk7DQoNCmludCBtYWluKCkg ew0KDQovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1 bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQogICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg bmFtZWQNCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVkIChf X3N0dWJfbmlzX2xpc3QpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX25pc19saXN0 KQ0KY2hva2UgbWUNCiNlbHNlDQpuaXNfbGlzdCgpOw0KI2VuZGlmDQoNCjsg cmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2V0 dWlkDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29u ZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxj IDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2V0ZXVpZA0K Y29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0 ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1 DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIHNldHJldWlkDQpjb25m aWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1P ICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNv bmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2V0cmVzdWlkDQpjb25maWd1 cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAg Y29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAw NzExLTMxNyBFUlJPUjogVW5kZWZpbmVkIHN5bWJvbDogLnNldHJlc3VpZA0K bGQ6IDA3MTEtMzQ1IFVzZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBv cHRpb24gdG8gb2J0YWluIG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDUwNzQgImNvbmZpZ3VyZSIN CiNpbmNsdWRlICJjb25mZGVmcy5oIg0KLyogU3lzdGVtIGhlYWRlciB0byBk ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5 cGVzLA0KICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2V0cmVz dWlkKCk7IGJlbG93LiAgKi8NCiNpbmNsdWRlIDxhc3NlcnQuaD4NCi8qIE92 ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4gICovDQovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQogICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8NCmNoYXIgc2V0cmVzdWlkKCk7DQoNCmludCBtYWluKCkg ew0KDQovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1 bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQogICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg bmFtZWQNCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVkIChf X3N0dWJfc2V0cmVzdWlkKSB8fCBkZWZpbmVkIChfX3N0dWJfX19zZXRyZXN1 aWQpDQpjaG9rZSBtZQ0KI2Vsc2UNCnNldHJlc3VpZCgpOw0KI2VuZGlmDQoN CjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Ig c2V0c2lkDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3IgbWVtY3B5 DQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRl c3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+ JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3IgbWVtbW92ZQ0KY29u ZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAt TyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpj b25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIHN0cnN0cg0KY29uZmlndXJl OjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNv bmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1 cmU6NTA2OTogY2hlY2tpbmcgZm9yIHN0cmVycm9yDQpjb25maWd1cmU6NTA5 NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRl c3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1 MDY5OiBjaGVja2luZyBmb3IgY2FwX2dldF9wcm9jDQpjb25maWd1cmU6NTA5 NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRl c3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMx NyBFUlJPUjogVW5kZWZpbmVkIHN5bWJvbDogLmNhcF9nZXRfcHJvYw0KbGQ6 IDA3MTEtMzQ1IFVzZSB0aGUgLWJsb2FkbWFwIG9yIC1ibm9xdWlldCBvcHRp b24gdG8gb2J0YWluIG1vcmUgaW5mb3JtYXRpb24uDQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDUwNzQgImNvbmZpZ3VyZSINCiNp bmNsdWRlICJjb25mZGVmcy5oIg0KLyogU3lzdGVtIGhlYWRlciB0byBkZWZp bmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz LA0KICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2FwX2dldF9w cm9jKCk7IGJlbG93LiAgKi8NCiNpbmNsdWRlIDxhc3NlcnQuaD4NCi8qIE92 ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4gICovDQovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQogICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8NCmNoYXIgY2FwX2dldF9wcm9jKCk7DQoNCmludCBtYWlu KCkgew0KDQovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQogICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQNCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVk IChfX3N0dWJfY2FwX2dldF9wcm9jKSB8fCBkZWZpbmVkIChfX3N0dWJfX19j YXBfZ2V0X3Byb2MpDQpjaG9rZSBtZQ0KI2Vsc2UNCmNhcF9nZXRfcHJvYygp Ow0KI2VuZGlmDQoNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo1MDY5OiBj aGVja2luZyBmb3IgZ2V0cmxpbWl0DQpjb25maWd1cmU6NTA5NzogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVj a2luZyBmb3Igc2V0bG9jYWxlDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5n bHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1s Y3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2lu ZyBmb3IgdW5hbWUNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9YW5z aSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMg LWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZvciBz aWduZ2FtDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJPUjogVW5kZWZpbmVkIHN5bWJv bDogLnNpZ25nYW0NCmxkOiAwNzExLTM0NSBVc2UgdGhlIC1ibG9hZG1hcCBv ciAtYm5vcXVpZXQgb3B0aW9uIHRvIG9idGFpbiBtb3JlIGluZm9ybWF0aW9u Lg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSA1MDc0 ICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCINCi8qIFN5c3Rl bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywNCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0 aCBjaGFyIHNpZ25nYW0oKTsgYmVsb3cuICAqLw0KI2luY2x1ZGUgPGFzc2Vy dC5oPg0KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCi8qIFdlIHVzZSBjaGFyIGJlY2F1 c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIN CiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLw0KY2hhciBzaWduZ2FtKCk7DQoNCmlu dCBtYWluKCkgew0KDQovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQogICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUg YWN0dWFsbHkgbmFtZWQNCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCiNpZiBk ZWZpbmVkIChfX3N0dWJfc2lnbmdhbSkgfHwgZGVmaW5lZCAoX19zdHViX19f c2lnbmdhbSkNCmNob2tlIG1lDQojZWxzZQ0Kc2lnbmdhbSgpOw0KI2VuZGlm DQoNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBm b3IgcHV0ZW52DQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kg LW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1s bSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3IgZ2V0 ZW52DQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29u ZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxj IDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3IgYnJrDQpjb25m aWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1P ICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNv bmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2Jyaw0KY29uZmlndXJlOjUw OTc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0 ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6 NTA2OTogY2hlY2tpbmcgZm9yIHBhdGhjb25mDQpjb25maWd1cmU6NTA5Nzog Y2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3Qu YyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5 OiBjaGVja2luZyBmb3Igc3lzY29uZg0KY29uZmlndXJlOjUwOTc6IGNjIC1x bGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxk bCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2OTogY2hl Y2tpbmcgZm9yIHRnZXRlbnQNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmds dmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxj dXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5n IGZvciB0aWdldGZsYWcNCmNvbmZpZ3VyZTo1MDk3OiBjYyAtcWxhbmdsdmw9 YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJz ZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjUwNjk6IGNoZWNraW5nIGZv ciB0aWdldG51bQ0KY29uZmlndXJlOjUwOTc6IGNjIC1xbGFuZ2x2bD1hbnNp IC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAt bG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgZm9yIHRp Z2V0c3RyDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTo1MDY5OiBjaGVja2luZyBmb3Igc2V0dXB0 ZXJtDQpjb25maWd1cmU6NTA5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29u ZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxj IDE+JjUNCmNvbmZpZ3VyZTo1MTIyOiBjaGVja2luZyBmb3Igd29ya2luZyBz dHJjb2xsDQpjb25maWd1cmU6NTE0MDogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTo1MTY0OiBjaGVja2luZyBpZiB0Z2V0ZW50 IGFjY2VwdHMgTlVMTA0KY29uZmlndXJlOjUxODg6IGNjIC1xbGFuZ2x2bD1h bnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNl cyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTIxODogY2hlY2tpbmcgZm9y IHVuaXN0ZC5oDQpjb25maWd1cmU6NTI1NzogY2hlY2tpbmcgZm9yIGdldHBh Z2VzaXplDQpjb25maWd1cmU6NTI4NTogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTo1MzEwOiBjaGVja2luZyBmb3Igd29ya2lu ZyBtbWFwDQpjb25maWd1cmU6NTQ2MTogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCiJjb25maWd1cmUiLCBsaW5lIDUzOTIuNjogMTUwNi0zNDMg KFMpIFJlZGVjbGFyYXRpb24gb2YgbWFsbG9jIGRpZmZlcnMgZnJvbSBwcmV2 aW91cyBkZWNsYXJhdGlvbiBvbiBsaW5lIDE3MyBvZiAiL3Vzci9pbmNsdWRl L3N0ZGxpYi5oIi4NCiJjb25maWd1cmUiLCBsaW5lIDUzOTIuNjogMTUwNi0w NTAgKEkpIFJldHVybiB0eXBlICJjaGFyKiIgaW4gcmVkZWNsYXJhdGlvbiBp cyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwcmV2aW91cyByZXR1cm4gdHlw ZSAidm9pZCoiLg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQoj bGluZSA1MzE4ICJjb25maWd1cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCIN Cg0KLyogVGhhbmtzIHRvIE1pa2UgSGFlcnRlbCBhbmQgSmltIEF2ZXJhIGZv ciB0aGlzIHRlc3QuDQogICBIZXJlIGlzIGEgbWF0cml4IG9mIG1tYXAgcG9z c2liaWxpdGllczoNCgltbWFwIHByaXZhdGUgbm90IGZpeGVkDQoJbW1hcCBw cml2YXRlIGZpeGVkIGF0IHNvbWV3aGVyZSBjdXJyZW50bHkgdW5tYXBwZWQN CgltbWFwIHByaXZhdGUgZml4ZWQgYXQgc29tZXdoZXJlIGFscmVhZHkgbWFw cGVkDQoJbW1hcCBzaGFyZWQgbm90IGZpeGVkDQoJbW1hcCBzaGFyZWQgZml4 ZWQgYXQgc29tZXdoZXJlIGN1cnJlbnRseSB1bm1hcHBlZA0KCW1tYXAgc2hh cmVkIGZpeGVkIGF0IHNvbWV3aGVyZSBhbHJlYWR5IG1hcHBlZA0KICAgRm9y IHByaXZhdGUgbWFwcGluZ3MsIHdlIHNob3VsZCB2ZXJpZnkgdGhhdCBjaGFu Z2VzIGNhbm5vdCBiZSByZWFkKCkNCiAgIGJhY2sgZnJvbSB0aGUgZmlsZSwg bm9yIG1tYXAncyBiYWNrIGZyb20gdGhlIGZpbGUgYXQgYSBkaWZmZXJlbnQN CiAgIGFkZHJlc3MuICAoVGhlcmUgaGF2ZSBiZWVuIHN5c3RlbXMgd2hlcmUg cHJpdmF0ZSB3YXMgbm90IGNvcnJlY3RseQ0KICAgaW1wbGVtZW50ZWQgbGlr ZSB0aGUgaW5mYW1vdXMgaTM4NiBzdnI0LjAsIGFuZCBzeXN0ZW1zIHdoZXJl IHRoZQ0KICAgVk0gcGFnZSBjYWNoZSB3YXMgbm90IGNvaGVyZW50IHdpdGgg dGhlIGZpbGVzeXN0ZW0gYnVmZmVyIGNhY2hlDQogICBsaWtlIGVhcmx5IHZl cnNpb25zIG9mIEZyZWVCU0QgYW5kIHBvc3NpYmx5IGNvbnRlbXBvcmFyeSBO ZXRCU0QuKQ0KICAgRm9yIHNoYXJlZCBtYXBwaW5ncywgd2Ugc2hvdWxkIGNv bnZlcnNlbHkgdmVyaWZ5IHRoYXQgY2hhbmdlcyBnZXQNCiAgIHByb3BvZ2F0 ZWQgYmFjayB0byBhbGwgdGhlIHBsYWNlcyB0aGV5J3JlIHN1cHBvc2VkIHRv IGJlLg0KDQogICBHcmVwIHdhbnRzIHByaXZhdGUgZml4ZWQgYWxyZWFkeSBt YXBwZWQuDQogICBUaGUgbWFpbiB0aGluZ3MgZ3JlcCBuZWVkcyB0byBrbm93 IGFib3V0IG1tYXAgYXJlOg0KICAgKiBkb2VzIGl0IGV4aXN0IGFuZCBpcyBp dCBzYWZlIHRvIHdyaXRlIGludG8gdGhlIG1tYXAnZCBhcmVhDQogICAqIGhv dyB0byB1c2UgaXQgKEJTRCB2YXJpYW50cykgICovDQojaW5jbHVkZSA8c3lz L3R5cGVzLmg+DQojaW5jbHVkZSA8ZmNudGwuaD4NCiNpbmNsdWRlIDxzeXMv bW1hbi5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2luY2x1ZGUgPHN5cy9z dGF0Lmg+DQoNCiNpZmRlZiBIQVZFX1VOSVNURF9IDQojIGluY2x1ZGUgPHVu aXN0ZC5oPg0KI2VuZGlmDQoNCi8qIFRoaXMgbWVzcyB3YXMgY29waWVkIGZy b20gdGhlIEdOVSBnZXRwYWdlc2l6ZS5oLiAgKi8NCiNpZm5kZWYgSEFWRV9H RVRQQUdFU0laRQ0KDQovKiBBc3N1bWUgdGhhdCBhbGwgc3lzdGVtcyB0aGF0 IGNhbiBydW4gY29uZmlndXJlIGhhdmUgc3lzL3BhcmFtLmguICAqLw0KIyBp Zm5kZWYgSEFWRV9TWVNfUEFSQU1fSA0KIyAgZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQ0KIyBlbmRpZg0KDQojIGlmZGVmIF9TQ19QQUdFU0laRQ0KIyAg ZGVmaW5lIGdldHBhZ2VzaXplKCkgc3lzY29uZihfU0NfUEFHRVNJWkUpDQoj IGVsc2UgLyogbm8gX1NDX1BBR0VTSVpFICovDQojICBpZmRlZiBIQVZFX1NZ U19QQVJBTV9IDQojICAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+DQojICAgaWZk ZWYgRVhFQ19QQUdFU0laRQ0KIyAgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBF WEVDX1BBR0VTSVpFDQojICAgZWxzZSAvKiBubyBFWEVDX1BBR0VTSVpFICov DQojICAgIGlmZGVmIE5CUEcNCiMgICAgIGRlZmluZSBnZXRwYWdlc2l6ZSgp IE5CUEcgKiBDTFNJWkUNCiMgICAgIGlmbmRlZiBDTFNJWkUNCiMgICAgICBk ZWZpbmUgQ0xTSVpFIDENCiMgICAgIGVuZGlmIC8qIG5vIENMU0laRSAqLw0K IyAgICBlbHNlIC8qIG5vIE5CUEcgKi8NCiMgICAgIGlmZGVmIE5CUEMNCiMg ICAgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBOQlBDDQojICAgICBlbHNlIC8q IG5vIE5CUEMgKi8NCiMgICAgICBpZmRlZiBQQUdFU0laRQ0KIyAgICAgICBk ZWZpbmUgZ2V0cGFnZXNpemUoKSBQQUdFU0laRQ0KIyAgICAgIGVuZGlmIC8q IFBBR0VTSVpFICovDQojICAgICBlbmRpZiAvKiBubyBOQlBDICovDQojICAg IGVuZGlmIC8qIG5vIE5CUEcgKi8NCiMgICBlbmRpZiAvKiBubyBFWEVDX1BB R0VTSVpFICovDQojICBlbHNlIC8qIG5vIEhBVkVfU1lTX1BBUkFNX0ggKi8N CiMgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSA4MTkyCS8qIHB1bnQgdG90YWxs eSAqLw0KIyAgZW5kaWYgLyogbm8gSEFWRV9TWVNfUEFSQU1fSCAqLw0KIyBl bmRpZiAvKiBubyBfU0NfUEFHRVNJWkUgKi8NCg0KI2VuZGlmIC8qIG5vIEhB VkVfR0VUUEFHRVNJWkUgKi8NCg0KI2lmZGVmIF9fY3BsdXNwbHVzDQpleHRl cm4gIkMiIHsgdm9pZCAqbWFsbG9jKHVuc2lnbmVkKTsgfQ0KI2Vsc2UNCmNo YXIgKm1hbGxvYygpOw0KI2VuZGlmDQoNCmludA0KbWFpbigpDQp7DQoJY2hh ciAqZGF0YSwgKmRhdGEyLCAqZGF0YTM7DQoJaW50IGksIHBhZ2VzaXplOw0K CWludCBmZDsNCg0KCXBhZ2VzaXplID0gZ2V0cGFnZXNpemUoKTsNCg0KCS8q DQoJICogRmlyc3QsIG1ha2UgYSBmaWxlIHdpdGggc29tZSBrbm93biBnYXJi YWdlIGluIGl0Lg0KCSAqLw0KCWRhdGEgPSAoY2hhciopbWFsbG9jKHBhZ2Vz aXplKTsNCglpZiAoIWRhdGEpDQoJCWV4aXQoMSk7DQoJZm9yIChpID0gMDsg aSA8IHBhZ2VzaXplOyArK2kpDQoJCSooZGF0YSArIGkpID0gcmFuZCgpOw0K CXVtYXNrKDApOw0KCWZkID0gY3JlYXQoImNvbmZ0ZXN0bW1hcCIsIDA2MDAp Ow0KCWlmIChmZCA8IDApDQoJCWV4aXQoMSk7DQoJaWYgKHdyaXRlKGZkLCBk YXRhLCBwYWdlc2l6ZSkgIT0gcGFnZXNpemUpDQoJCWV4aXQoMSk7DQoJY2xv c2UoZmQpOw0KDQoJLyoNCgkgKiBOZXh0LCB0cnkgdG8gbW1hcCB0aGUgZmls ZSBhdCBhIGZpeGVkIGFkZHJlc3Mgd2hpY2gNCgkgKiBhbHJlYWR5IGhhcyBz b21ldGhpbmcgZWxzZSBhbGxvY2F0ZWQgYXQgaXQuICBJZiB3ZSBjYW4sDQoJ ICogYWxzbyBtYWtlIHN1cmUgdGhhdCB3ZSBzZWUgdGhlIHNhbWUgZ2FyYmFn ZS4NCgkgKi8NCglmZCA9IG9wZW4oImNvbmZ0ZXN0bW1hcCIsIE9fUkRXUik7 DQoJaWYgKGZkIDwgMCkNCgkJZXhpdCgxKTsNCglkYXRhMiA9IChjaGFyKilt YWxsb2MoMiAqIHBhZ2VzaXplKTsNCglpZiAoIWRhdGEyKQ0KCQlleGl0KDEp Ow0KCWRhdGEyICs9IChwYWdlc2l6ZSAtICgoaW50KSBkYXRhMiAmIChwYWdl c2l6ZSAtIDEpKSkgJiAocGFnZXNpemUgLSAxKTsNCglpZiAoZGF0YTIgIT0g bW1hcChkYXRhMiwgcGFnZXNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUs DQoJICAgIE1BUF9QUklWQVRFIHwgTUFQX0ZJWEVELCBmZCwgMEwpKQ0KCQll eGl0KDEpOw0KCWZvciAoaSA9IDA7IGkgPCBwYWdlc2l6ZTsgKytpKQ0KCQlp ZiAoKihkYXRhICsgaSkgIT0gKihkYXRhMiArIGkpKQ0KCQkJZXhpdCgxKTsN Cg0KCS8qDQoJICogRmluYWxseSwgbWFrZSBzdXJlIHRoYXQgY2hhbmdlcyB0 byB0aGUgbWFwcGVkIGFyZWENCgkgKiBkbyBub3QgcGVyY29sYXRlIGJhY2sg dG8gdGhlIGZpbGUgYXMgc2VlbiBieSByZWFkKCkuDQoJICogKFRoaXMgaXMg YSBidWcgb24gc29tZSB2YXJpYW50cyBvZiBpMzg2IHN2cjQuMC4pDQoJICov DQoJZm9yIChpID0gMDsgaSA8IHBhZ2VzaXplOyArK2kpDQoJCSooZGF0YTIg KyBpKSA9ICooZGF0YTIgKyBpKSArIDE7DQoJZGF0YTMgPSAoY2hhciopbWFs bG9jKHBhZ2VzaXplKTsNCglpZiAoIWRhdGEzKQ0KCQlleGl0KDEpOw0KCWlm IChyZWFkKGZkLCBkYXRhMywgcGFnZXNpemUpICE9IHBhZ2VzaXplKQ0KCQll eGl0KDEpOw0KCWZvciAoaSA9IDA7IGkgPCBwYWdlc2l6ZTsgKytpKQ0KCQlp ZiAoKihkYXRhICsgaSkgIT0gKihkYXRhMyArIGkpKQ0KCQkJZXhpdCgxKTsN CgljbG9zZShmZCk7DQoJdW5saW5rKCJjb25mdGVzdG1tYXAiKTsNCglleGl0 KDApOw0KfQ0KDQpjb25maWd1cmU6NTU0MzogY2hlY2tpbmcgd2hldGhlciBn ZXRwZ3JwIHRha2VzIG5vIGFyZ3VtZW50DQpjb25maWd1cmU6NTYwNjogY2Mg LXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAt bGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1NjQyOiBj aGVja2luZyBmb3IgZGxvcGVuDQpjb25maWd1cmU6NTY3MDogY2MgLXFsYW5n bHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1s Y3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1NjQyOiBjaGVja2lu ZyBmb3IgZGxlcnJvcg0KY29uZmlndXJlOjU2NzA6IGNjIC1xbGFuZ2x2bD1h bnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNl cyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTY0MjogY2hlY2tpbmcgZm9y IGRsc3ltDQpjb25maWd1cmU6NTY3MDogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTo1NjQyOiBjaGVja2luZyBmb3IgZGxjbG9z ZQ0KY29uZmlndXJlOjU2NzA6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0 ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAx PiY1DQpjb25maWd1cmU6NTY0MjogY2hlY2tpbmcgZm9yIGxvYWQNCmNvbmZp Z3VyZTo1NjcwOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8g ICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29u ZmlndXJlOjU2NDI6IGNoZWNraW5nIGZvciBsb2FkcXVlcnkNCmNvbmZpZ3Vy ZTo1NjcwOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBj b25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmln dXJlOjU2NDI6IGNoZWNraW5nIGZvciBsb2FkYmluZA0KY29uZmlndXJlOjU2 NzA6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0 ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6 NTY0MjogY2hlY2tpbmcgZm9yIHVubG9hZA0KY29uZmlndXJlOjU2NzA6IGNj IC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMg LWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NTY0Mjog Y2hlY2tpbmcgZm9yIHNobF9sb2FkDQpjb25maWd1cmU6NTY3MDogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJPUjog VW5kZWZpbmVkIHN5bWJvbDogLnNobF9sb2FkDQpsZDogMDcxMS0zNDUgVXNl IHRoZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0IG9wdGlvbiB0byBvYnRhaW4g bW9yZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOg0KI2xpbmUgNTY0NyAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZk ZWZzLmgiDQovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQogICAgd2hpY2gg Y2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaGxfbG9hZCgpOyBiZWxvdy4gICov DQojaW5jbHVkZSA8YXNzZXJ0Lmg+DQovKiBPdmVycmlkZSBhbnkgZ2NjMiBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KLyog V2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgZ2NjMg0KICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQpjaGFy IHNobF9sb2FkKCk7DQoNCmludCBtYWluKCkgew0KDQovKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzDQogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCiAgICBzb21ldGhp bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu IGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVkIChfX3N0dWJfc2hsX2xvYWQpIHx8 IGRlZmluZWQgKF9fc3R1Yl9fX3NobF9sb2FkKQ0KY2hva2UgbWUNCiNlbHNl DQpzaGxfbG9hZCgpOw0KI2VuZGlmDQoNCjsgcmV0dXJuIDA7IH0NCmNvbmZp Z3VyZTo1NjQyOiBjaGVja2luZyBmb3Igc2hsX3VubG9hZA0KY29uZmlndXJl OjU2NzA6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNv bmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDogMDcx MS0zMTcgRVJST1I6IFVuZGVmaW5lZCBzeW1ib2w6IC5zaGxfdW5sb2FkDQps ZDogMDcxMS0zNDUgVXNlIHRoZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0IG9w dGlvbiB0byBvYnRhaW4gbW9yZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgNTY0NyAiY29uZmlndXJlIg0K I2luY2x1ZGUgImNvbmZkZWZzLmgiDQovKiBTeXN0ZW0gaGVhZGVyIHRvIGRl ZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsDQogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaGxfdW5s b2FkKCk7IGJlbG93LiAgKi8NCiNpbmNsdWRlIDxhc3NlcnQuaD4NCi8qIE92 ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4gICovDQovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQogICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8NCmNoYXIgc2hsX3VubG9hZCgpOw0KDQppbnQgbWFpbigp IHsNCg0KLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KICAgIHRvIGFsd2F5cyBm YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkDQogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRo ZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovDQojaWYgZGVmaW5lZCAo X19zdHViX3NobF91bmxvYWQpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3NobF91 bmxvYWQpDQpjaG9rZSBtZQ0KI2Vsc2UNCnNobF91bmxvYWQoKTsNCiNlbmRp Zg0KDQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6NTY0MjogY2hlY2tpbmcg Zm9yIHNobF9maW5kc3ltDQpjb25maWd1cmU6NTY3MDogY2MgLXFsYW5nbHZs PWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vy c2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMxNyBFUlJPUjogVW5kZWZp bmVkIHN5bWJvbDogLnNobF9maW5kc3ltDQpsZDogMDcxMS0zNDUgVXNlIHRo ZSAtYmxvYWRtYXAgb3IgLWJub3F1aWV0IG9wdGlvbiB0byBvYnRhaW4gbW9y ZSBpbmZvcm1hdGlvbi4NCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Og0KI2xpbmUgNTY0NyAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZkZWZz LmgiDQovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQogICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBzaGxfZmluZHN5bSgpOyBiZWxvdy4gICov DQojaW5jbHVkZSA8YXNzZXJ0Lmg+DQovKiBPdmVycmlkZSBhbnkgZ2NjMiBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KLyog V2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgZ2NjMg0KICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQpjaGFy IHNobF9maW5kc3ltKCk7DQoNCmludCBtYWluKCkgew0KDQovKiBUaGUgR05V IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzDQogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCiAgICBzb21l dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8NCiNpZiBkZWZpbmVkIChfX3N0dWJfc2hsX2ZpbmRz eW0pIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3NobF9maW5kc3ltKQ0KY2hva2Ug bWUNCiNlbHNlDQpzaGxfZmluZHN5bSgpOw0KI2VuZGlmDQoNCjsgcmV0dXJu IDA7IH0NCmNvbmZpZ3VyZTo1Njk4OiBjaGVja2luZyB3aGF0IHN0eWxlIG9m IHNpZ25hbHMgdG8gdXNlDQpjb25maWd1cmU6NTczMTogY2hlY2tpbmcgd2hl cmUgc2lnbmFsLmggaXMgbG9jYXRlZA0KY29uZmlndXJlOjU3NzE6IGNoZWNr aW5nIHdoZXJlIHRoZSBSTElNSVQgbWFjcm9zIGFyZSBsb2NhdGVkDQpjb25m aWd1cmU6NTc5NTogY2hlY2tpbmcgaWYgcmxpbV90IGlzIGxvbmdlciB0aGFu IGEgbG9uZw0KY29uZmlndXJlOjU4MTI6IGNjIC1xbGFuZ2x2bD1hbnNpIC1v IGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0g IC1sYyAxPiY1DQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNs aW5lIDU4MDMgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0K DQojaWZkZWYgSEFWRV9TWVNfVElNRV9IDQojaW5jbHVkZSA8c3lzL3RpbWUu aD4NCiNlbmRpZg0KI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPg0KbWFpbigp e3N0cnVjdCBybGltaXQgcjtleGl0KHNpemVvZihyLnJsaW1fY3VyKSA8PSBz aXplb2YobG9uZykpO30NCmNvbmZpZ3VyZTo1ODgzOiBjaGVja2luZyBpZiB0 aGUgcmxpbV90IGlzIHVuc2lnbmVkDQpjb25maWd1cmU6NTkwMDogY2MgLXFs YW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3VyZTo1OTI1OiBjaGVj a2luZyBmb3IgcmxpbV90DQpjb25maWd1cmU6NTk0MjogY2MgLXFsYW5nbHZs PWFuc2kgLWMgIC1PICBjb25mdGVzdC5jIDE+JjUNCmNvbmZpZ3VyZTo1OTYz OiBjaGVja2luZyBmb3IgL2Rldi9mZCBmaWxlc3lzdGVtDQpjb25maWd1cmU6 NTk4MTogY2hlY2tpbmcgZm9yIFJGUyBzdXBlcnJvb3QgZGlyZWN0b3J5DQpj b25maWd1cmU6NTk5NzogY2hlY2tpbmcgd2hldGhlciB3ZSBzaG91bGQgdXNl IHRoZSBuYXRpdmUgZ2V0Y3dkDQpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg Zm9yIE5JUw0KY29uZmlndXJlOjYwMzM6IGNoZWNraW5nIGZvciBOSVMrDQpj b25maWd1cmU6NjA1MTogY2hlY2tpbmcgZm9yIHV0bXAgZmlsZQ0KY29uZmln dXJlOjYwNzI6IGNoZWNraW5nIGZvciB3dG1wIGZpbGUNCmNvbmZpZ3VyZTo2 MDkzOiBjaGVja2luZyBmb3IgdXRtcHggZmlsZQ0KY29uZmlndXJlOjYxMTQ6 IGNoZWNraW5nIGZvciB3dG1weCBmaWxlDQpjb25maWd1cmU6NjEzNjogY2hl Y2tpbmcgZm9yIGJyaygpIHByb3RvdHlwZSBpbiA8dW5pc3RkLmg+DQpjb25m aWd1cmU6NjE0OTogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBjb25mdGVz dC5jIDE+JjUNCiJjb25maWd1cmUiLCBsaW5lIDYxNDMuODogMTUwNi0zNDMg KFMpIFJlZGVjbGFyYXRpb24gb2YgYnJrIGRpZmZlcnMgZnJvbSBwcmV2aW91 cyBkZWNsYXJhdGlvbiBvbiBsaW5lIDU3MSBvZiAiL3Vzci9pbmNsdWRlL3Vu aXN0ZC5oIi4NCiJjb25maWd1cmUiLCBsaW5lIDYxNDMuODogMTUwNi0wNTAg KEkpIFJldHVybiB0eXBlICJkb3VibGUiIGluIHJlZGVjbGFyYXRpb24gaXMg bm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcHJldmlvdXMgcmV0dXJuIHR5cGUg ImludCIuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5l IDYxNDEgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0KI2lu Y2x1ZGUgPHVuaXN0ZC5oPg0KZG91YmxlIGJyaygpOw0KaW50IG1haW4oKSB7 DQppbnQgaTsNCjsgcmV0dXJuIDA7IH0NCmNvbmZpZ3VyZTo2MTcwOiBjaGVj a2luZyBmb3Igc2JyaygpIHByb3RvdHlwZSBpbiA8dW5pc3RkLmg+DQpjb25m aWd1cmU6NjE4MzogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBjb25mdGVz dC5jIDE+JjUNCiJjb25maWd1cmUiLCBsaW5lIDYxNzcuODogMTUwNi0zNDMg KFMpIFJlZGVjbGFyYXRpb24gb2Ygc2JyayBkaWZmZXJzIGZyb20gcHJldmlv dXMgZGVjbGFyYXRpb24gb24gbGluZSA1OTAgb2YgIi91c3IvaW5jbHVkZS91 bmlzdGQuaCIuDQoiY29uZmlndXJlIiwgbGluZSA2MTc3Ljg6IDE1MDYtMDUw IChJKSBSZXR1cm4gdHlwZSAiZG91YmxlIiBpbiByZWRlY2xhcmF0aW9uIGlz IG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHByZXZpb3VzIHJldHVybiB0eXBl ICJ2b2lkKiIuDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNs aW5lIDYxNzUgImNvbmZpZ3VyZSINCiNpbmNsdWRlICJjb25mZGVmcy5oIg0K I2luY2x1ZGUgPHVuaXN0ZC5oPg0KZG91YmxlIHNicmsoKTsNCmludCBtYWlu KCkgew0KaW50IGk7DQo7IHJldHVybiAwOyB9DQpjb25maWd1cmU6NjIwNjog Y2hlY2tpbmcgZm9yIGlvY3RsIHByb3RvdHlwZSBpbiA8c3lzL2lvY3RsLmg+ DQpjb25maWd1cmU6NjIxOTogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1PICBj b25mdGVzdC5jIDE+JjUNCmNvbmZpZ3VyZTo2MjM5OiBjaGVja2luZyBmb3Ig bWtub2QgcHJvdG90eXBlIGluIDxzeXMvc3RhdC5oPg0KY29uZmlndXJlOjYy NTI6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAgY29uZnRlc3QuYyAxPiY1 DQoiY29uZmlndXJlIiwgbGluZSA2MjQ2Ljg6IDE1MDYtMzQzIChTKSBSZWRl Y2xhcmF0aW9uIG9mIG1rbm9kIGRpZmZlcnMgZnJvbSBwcmV2aW91cyBkZWNs YXJhdGlvbiBvbiBsaW5lIDI4MSBvZiAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0 LmgiLg0KImNvbmZpZ3VyZSIsIGxpbmUgNjI0Ni44OiAxNTA2LTM3NiAoSSkg UmVkZWNsYXJhdGlvbiBvZiBta25vZCBoYXMgYSBkaWZmZXJlbnQgbnVtYmVy IG9mIGZpeGVkIHBhcmFtZXRlcnMgdGhhbiB0aGUgcHJldmlvdXMgZGVjbGFy YXRpb24uDQoiY29uZmlndXJlIiwgbGluZSA2MjQ2Ljg6IDE1MDYtMzc3IChJ KSBUaGUgdHlwZSAiZG91YmxlIiBvZiBwYXJhbWV0ZXIgMSBkaWZmZXJzIGZy b20gdGhlIHByZXZpb3VzIHR5cGUgImNvbnN0IGNoYXIqIi4NCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgNjI0NCAiY29uZmlndXJl Ig0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQojaW5jbHVkZSA8c3lzL3N0YXQu aD4NCiAgIGludCBta25vZChkb3VibGUgeCk7DQppbnQgbWFpbigpIHsNCmlu dCBpOw0KOyByZXR1cm4gMDsgfQ0KY29uZmlndXJlOjYzMDk6IGNoZWNraW5n IGlmIG5hbWVkIEZJRk9zIHdvcmsNCmNvbmZpZ3VyZTo2MzQ4OiBjYyAtcWxh bmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwg LWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJlOjYzNzA6IGNoZWNr aW5nIGlmIGVjaG8gaW4gL2Jpbi9zaCBpbnRlcnByZXRzIGVzY2FwZSBzZXF1 ZW5jZXMNCmNvbmZpZ3VyZTo2MzkwOiBjaGVja2luZyBpZiBsaW5rKCkgd29y a3MNCmNvbmZpZ3VyZTo2NDIwOiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25m dGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMg MT4mNQ0KY29uZmlndXJlOjY0NDM6IGNoZWNraW5nIGlmIGtpbGwocGlkLCAw KSByZXR1cm5zIEVTUkNIIGNvcnJlY3RseQ0KY29uZmlndXJlOjY0NjY6IGNj IC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMg LWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NjQ5MDog Y2hlY2tpbmcgaWYgUE9TSVggc2lnc3VzcGVuZCgpIHdvcmtzDQpjb25maWd1 cmU6NjUyNzogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAg Y29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZp Z3VyZTo2NTUyOiBjaGVja2luZyBpZiB0Y3NldHBncnAoKSBhY3R1YWxseSB3 b3Jrcw0KY29uZmlndXJlOjY1NzI6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNv bmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1s YyAxPiY1DQpjb25maWd1cmU6NjU5NzogY2hlY2tpbmcgaWYgZ2V0cHduYW0o KSBpcyBmYWtlZA0KY29uZmlndXJlOjY2MjE6IGNjIC1xbGFuZ2x2bD1hbnNp IC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAt bG0gIC1sYyAxPiY1DQpjb25maWd1cmU6NjcxNTogY2hlY2tpbmcgaWYgeW91 ciBzeXN0ZW0gdXNlIEVMRiBiaW5hcmllcw0KY29uZmlndXJlOjY3NDI6IGNj IC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgIGNvbmZ0ZXN0LmMg LWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoNCiNsaW5lIDY3MjMgImNvbmZpZ3VyZSINCiNpbmNs dWRlICJjb25mZGVmcy5oIg0KLyogVGVzdCBmb3Igd2hldGhlciBFTEYgYmlu YXJpZXMgYXJlIHByb2R1Y2VkICovDQojaW5jbHVkZSA8ZmNudGwuaD4NCiNp bmNsdWRlIDxzdGRsaWIuaD4NCm1haW4oYXJnYywgYXJndikNCmludCBhcmdj Ow0KY2hhciAqYXJndltdOw0Kew0KCWNoYXIgYls0XTsNCglpbnQgaSA9IG9w ZW4oYXJndlswXSxPX1JET05MWSk7DQoJaWYoaSA9PSAtMSkgDQoJCWV4aXQo MSk7IC8qIGZhaWwgKi8NCglpZihyZWFkKGksYiw0KT09NCAmJiBiWzBdPT0x MjcgJiYgYlsxXT09J0UnICYmIGJbMl09PSdMJyAmJiBiWzNdPT0nRicpDQoJ CWV4aXQoMCk7IC8qIHN1Y2NlZWQgKHllcywgaXQncyBFTEYpICovDQoJZWxz ZQ0KCQlleGl0KDEpOyAvKiBmYWlsICovDQp9DQpjb25maWd1cmU6NjgxNzog Y2hlY2tpbmcgaWYgeW91ciBkbHN5bSgpIG5lZWRzIGEgbGVhZGluZyB1bmRl cnNjb3JlDQpjb25maWd1cmU6NjgyNDogY2MgLXFsYW5nbHZsPWFuc2kgLWMg IC1PICAgY29uZnRlc3QuYyAxPiY1DQpjb25maWd1cmU6NjgyNTogbGQgIC1H IC1iZXhwYWxsIC1sYyAtbyBjb25mdGVzdC5zbyBjb25mdGVzdC5vIDE+JjUN CmxkOiAwNzExLTMyNyBXQVJOSU5HOiBFbnRyeSBwb2ludCBub3QgZm91bmQ6 IF9fc3RhcnQNCmNvbmZpZ3VyZTo2ODg2OiBjYyAtcWxhbmdsdmw9YW5zaSAt byBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxt ICAtbGMgMT4mNQ0KY29uZmlndXJlOjY5MTQ6IGNoZWNraW5nIGlmIGVudmly b24gaXMgYXZhaWxhYmxlIGluIHNoYXJlZCBsaWJyYXJpZXMNCmNvbmZpZ3Vy ZTo2OTM0OiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAgLU8gICBjb25mdGVzdDEu YyAxPiY1DQoiY29uZnRlc3QxLmMiLCBsaW5lIDkuMjogMTUwNi0xMzcgKEUp IERlY2xhcmF0aW9uIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgZGVjbGFy YXRvciwgdGFnLCBvciB0aGUgbWVtYmVycyBvZiBhbiBlbnVtZXJhdGlvbi4N CmNvbmZpZ3VyZTo2OTM1OiBsZCAtbyBjb25mdGVzdDEuc28gIC1HIC1iZXhw YWxsIC1sYyBjb25mdGVzdDEubyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+ JjUNCmxkOiAwNzExLTMyNyBXQVJOSU5HOiBFbnRyeSBwb2ludCBub3QgZm91 bmQ6IF9fc3RhcnQNCmNvbmZpZ3VyZTo2OTM2OiBjYyAtcWxhbmdsdmw9YW5z aSAtYyAgLU8gICBjb25mdGVzdDIuYyAxPiY1DQoiY29uZnRlc3QyLmMiLCBs aW5lIDkuMjogMTUwNi0xMzcgKEUpIERlY2xhcmF0aW9uIG11c3QgZGVjbGFy ZSBhdCBsZWFzdCBvbmUgZGVjbGFyYXRvciwgdGFnLCBvciB0aGUgbWVtYmVy cyBvZiBhbiBlbnVtZXJhdGlvbi4NCmNvbmZpZ3VyZTo2OTM3OiBsZCAtbyBj b25mdGVzdDIuc28gIC1HIC1iZXhwYWxsIC1sYyBjb25mdGVzdDIubyAtbGRs IC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMyNyBXQVJOSU5H OiBFbnRyeSBwb2ludCBub3QgZm91bmQ6IF9fc3RhcnQNCmNvbmZpZ3VyZTo2 OTk5OiBjYyAtcWxhbmdsdmw9YW5zaSAtbyBjb25mdGVzdCAgLU8gICBjb25m dGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmlndXJl OjcwMjI6IGNoZWNraW5nIGlmIHRnZXRlbnQgaXMgYXZhaWxhYmxlIGluIHNo YXJlZCBsaWJyYXJpZXMNCmNvbmZpZ3VyZTo3MDQyOiBjYyAtcWxhbmdsdmw9 YW5zaSAtYyAgLU8gICBjb25mdGVzdDEuYyAxPiY1DQoiY29uZnRlc3QxLmMi LCBsaW5lIDguMTY6IDE1MDYtMDY4IChFKSBPcGVyYXRpb24gYmV0d2VlbiB0 eXBlcyAidm9pZCoiIGFuZCAiaW50KCopKCkiIGlzIG5vdCBhbGxvd2VkLg0K ImNvbmZ0ZXN0MS5jIiwgbGluZSA5LjI6IDE1MDYtMTM3IChFKSBEZWNsYXJh dGlvbiBtdXN0IGRlY2xhcmUgYXQgbGVhc3Qgb25lIGRlY2xhcmF0b3IsIHRh Zywgb3IgdGhlIG1lbWJlcnMgb2YgYW4gZW51bWVyYXRpb24uDQpjb25maWd1 cmU6NzA0MzogbGQgLW8gY29uZnRlc3QxLnNvICAtRyAtYmV4cGFsbCAtbGMg Y29uZnRlc3QxLm8gLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDog MDcxMS0zMjcgV0FSTklORzogRW50cnkgcG9pbnQgbm90IGZvdW5kOiBfX3N0 YXJ0DQpjb25maWd1cmU6NzA0NDogY2MgLXFsYW5nbHZsPWFuc2kgLWMgIC1P ICAgY29uZnRlc3QyLmMgMT4mNQ0KImNvbmZ0ZXN0Mi5jIiwgbGluZSA4LjE2 OiAxNTA2LTA2OCAoRSkgT3BlcmF0aW9uIGJldHdlZW4gdHlwZXMgInZvaWQq IiBhbmQgImludCgqKSgpIiBpcyBub3QgYWxsb3dlZC4NCiJjb25mdGVzdDIu YyIsIGxpbmUgOS4yOiAxNTA2LTEzNyAoRSkgRGVjbGFyYXRpb24gbXVzdCBk ZWNsYXJlIGF0IGxlYXN0IG9uZSBkZWNsYXJhdG9yLCB0YWcsIG9yIHRoZSBt ZW1iZXJzIG9mIGFuIGVudW1lcmF0aW9uLg0KY29uZmlndXJlOjcwNDU6IGxk IC1vIGNvbmZ0ZXN0Mi5zbyAgLUcgLWJleHBhbGwgLWxjIGNvbmZ0ZXN0Mi5v IC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KbGQ6IDA3MTEtMzI3IFdB Uk5JTkc6IEVudHJ5IHBvaW50IG5vdCBmb3VuZDogX19zdGFydA0KY29uZmln dXJlOjcxMDc6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAg IGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpjb25m aWd1cmU6NzEzMDogY2hlY2tpbmcgaWYgdGlnZXRzdHIgaXMgYXZhaWxhYmxl IGluIHNoYXJlZCBsaWJyYXJpZXMNCmNvbmZpZ3VyZTo3MTUwOiBjYyAtcWxh bmdsdmw9YW5zaSAtYyAgLU8gICBjb25mdGVzdDEuYyAxPiY1DQoiY29uZnRl c3QxLmMiLCBsaW5lIDguMTY6IDE1MDYtMDY4IChFKSBPcGVyYXRpb24gYmV0 d2VlbiB0eXBlcyAidm9pZCoiIGFuZCAiaW50KCopKCkiIGlzIG5vdCBhbGxv d2VkLg0KImNvbmZ0ZXN0MS5jIiwgbGluZSA5LjI6IDE1MDYtMTM3IChFKSBE ZWNsYXJhdGlvbiBtdXN0IGRlY2xhcmUgYXQgbGVhc3Qgb25lIGRlY2xhcmF0 b3IsIHRhZywgb3IgdGhlIG1lbWJlcnMgb2YgYW4gZW51bWVyYXRpb24uDQpj b25maWd1cmU6NzE1MTogbGQgLW8gY29uZnRlc3QxLnNvICAtRyAtYmV4cGFs bCAtbGMgY29uZnRlc3QxLm8gLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1 DQpsZDogMDcxMS0zMjcgV0FSTklORzogRW50cnkgcG9pbnQgbm90IGZvdW5k OiBfX3N0YXJ0DQpjb25maWd1cmU6NzE1MjogY2MgLXFsYW5nbHZsPWFuc2kg LWMgIC1PICAgY29uZnRlc3QyLmMgMT4mNQ0KImNvbmZ0ZXN0Mi5jIiwgbGlu ZSA4LjE2OiAxNTA2LTA2OCAoRSkgT3BlcmF0aW9uIGJldHdlZW4gdHlwZXMg InZvaWQqIiBhbmQgImludCgqKSgpIiBpcyBub3QgYWxsb3dlZC4NCiJjb25m dGVzdDIuYyIsIGxpbmUgOS4yOiAxNTA2LTEzNyAoRSkgRGVjbGFyYXRpb24g bXVzdCBkZWNsYXJlIGF0IGxlYXN0IG9uZSBkZWNsYXJhdG9yLCB0YWcsIG9y IHRoZSBtZW1iZXJzIG9mIGFuIGVudW1lcmF0aW9uLg0KY29uZmlndXJlOjcx NTM6IGxkIC1vIGNvbmZ0ZXN0Mi5zbyAgLUcgLWJleHBhbGwgLWxjIGNvbmZ0 ZXN0Mi5vIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KbGQ6IDA3MTEt MzI3IFdBUk5JTkc6IEVudHJ5IHBvaW50IG5vdCBmb3VuZDogX19zdGFydA0K Y29uZmlndXJlOjcyMTU6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0 ICAtTyAgIGNvbmZ0ZXN0LmMgLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1 DQpjb25maWd1cmU6NzI0MDogY2hlY2tpbmcgaWYgbmFtZSBjbGFzaGVzIGlu IHNoYXJlZCBvYmplY3RzIGFyZSBPSw0KY29uZmlndXJlOjcyNTE6IGNjIC1x bGFuZ2x2bD1hbnNpIC1jICAtTyAgIGNvbmZ0ZXN0MS5jIDE+JjUNCmNvbmZp Z3VyZTo3MjUyOiBsZCAtbyBjb25mdGVzdDEuc28gIC1HIC1iZXhwYWxsIC1s YyBjb25mdGVzdDEubyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmxk OiAwNzExLTMyNyBXQVJOSU5HOiBFbnRyeSBwb2ludCBub3QgZm91bmQ6IF9f c3RhcnQNCmNvbmZpZ3VyZTo3MjUzOiBjYyAtcWxhbmdsdmw9YW5zaSAtYyAg LU8gICBjb25mdGVzdDIuYyAxPiY1DQpjb25maWd1cmU6NzI1NDogbGQgLW8g Y29uZnRlc3QyLnNvICAtRyAtYmV4cGFsbCAtbGMgY29uZnRlc3QyLm8gLWxk bCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQpsZDogMDcxMS0zMjcgV0FSTklO RzogRW50cnkgcG9pbnQgbm90IGZvdW5kOiBfX3N0YXJ0DQpjb25maWd1cmU6 NzMwNjogY2MgLXFsYW5nbHZsPWFuc2kgLW8gY29uZnRlc3QgIC1PICAgY29u ZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUNCmNvbmZpZ3Vy ZTo3MzMzOiBjaGVja2luZyBmb3Igd29ya2luZyBSVExEX0dMT0JBTA0KY29u ZmlndXJlOjczNDQ6IGNjIC1xbGFuZ2x2bD1hbnNpIC1jICAtTyAgIGNvbmZ0 ZXN0MS5jIDE+JjUNCmNvbmZpZ3VyZTo3MzQ1OiBsZCAtbyBjb25mdGVzdDEu c28gIC1HIC1iZXhwYWxsIC1sYyBjb25mdGVzdDEubyAtbGRsIC1sY3Vyc2Vz IC1sbSAgLWxjIDE+JjUNCmxkOiAwNzExLTMyNyBXQVJOSU5HOiBFbnRyeSBw b2ludCBub3QgZm91bmQ6IF9fc3RhcnQNCmNvbmZpZ3VyZTo3MzQ2OiBjYyAt cWxhbmdsdmw9YW5zaSAtYyAgLU8gICBjb25mdGVzdDIuYyAxPiY1DQpjb25m aWd1cmU6NzM0NzogbGQgLW8gY29uZnRlc3QyLnNvICAtRyAtYmV4cGFsbCAt bGMgY29uZnRlc3QyLm8gLWxkbCAtbGN1cnNlcyAtbG0gIC1sYyAxPiY1DQps ZDogMDcxMS0zMjcgV0FSTklORzogRW50cnkgcG9pbnQgbm90IGZvdW5kOiBf X3N0YXJ0DQpjb25maWd1cmU6NzM5NzogY2MgLXFsYW5nbHZsPWFuc2kgLW8g Y29uZnRlc3QgIC1PICAgY29uZnRlc3QuYyAtbGRsIC1sY3Vyc2VzIC1sbSAg LWxjIDE+JjUNCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xp bmUgNzM1MyAiY29uZmlndXJlIg0KI2luY2x1ZGUgImNvbmZkZWZzLmgiDQoN CiNpZmRlZiBIUFVYRFlOQU1JQw0KI2luY2x1ZGUgPGRsLmg+DQojZGVmaW5l IFJUTERfTEFaWSBCSU5EX0RFRkVSUkVEDQojZGVmaW5lIFJUTERfR0xPQkFM IERZTkFNSUNfUEFUSA0KDQpjaGFyICp6c2hfZ2xfc3ltX2FkZHIgOw0KDQoj ZGVmaW5lIGRsb3BlbihmaWxlLG1vZGUpICh2b2lkICopc2hsX2xvYWQoKGZp bGUpLCAobW9kZSksIChsb25nKSAwKQ0KI2RlZmluZSBkbGNsb3NlKGhhbmRs ZSkgc2hsX3VubG9hZCgoc2hsX3QpKGhhbmRsZSkpDQojZGVmaW5lIGRsc3lt KGhhbmRsZSxuYW1lKSAoenNoX2dsX3N5bV9hZGRyPTAsc2hsX2ZpbmRzeW0o KHNobF90ICopJihoYW5kbGUpLG5hbWUsVFlQRV9VTkRFRklORUQsJnpzaF9n bF9zeW1fYWRkciksICh2b2lkICopenNoX2dsX3N5bV9hZGRyKQ0KI2RlZmlu ZSBkbGVycm9yKCkgMA0KI2Vsc2UNCiNpZmRlZiBIQVZFX0RMRkNOX0gNCiNp bmNsdWRlIDxkbGZjbi5oPg0KI2Vsc2UNCiNpbmNsdWRlIDxzeXMvdHlwZXMu aD4NCiNpbmNsdWRlIDxubGlzdC5oPg0KI2luY2x1ZGUgPGxpbmsuaD4NCiNl bmRpZg0KI2VuZGlmDQojaWZuZGVmIFJUTERfTEFaWQ0KI2RlZmluZSBSVExE X0xBWlkgMQ0KI2VuZGlmDQojaWZuZGVmIFJUTERfR0xPQkFMDQojZGVmaW5l IFJUTERfR0xPQkFMIDANCiNlbmRpZg0KDQptYWluKCkNCnsNCiAgICB2b2lk ICpoYW5kbGU7DQogICAgaW50ICgqYmFybmV5c3ltKSgpOw0KICAgIGhhbmRs ZSA9IGRsb3BlbigiLi9jb25mdGVzdDEuc28iLCBSVExEX0xBWlkgfCBSVExE X0dMT0JBTCk7DQogICAgaWYoIWhhbmRsZSkgZXhpdCgxKTsNCiAgICBoYW5k bGUgPSBkbG9wZW4oIi4vY29uZnRlc3QyLnNvIiwgUlRMRF9MQVpZIHwgUlRM RF9HTE9CQUwpOw0KICAgIGlmKCFoYW5kbGUpIGV4aXQoMSk7DQogICAgYmFy bmV5c3ltID0gKGludCAoKikoKSkgZGxzeW0oaGFuZGxlLCAiYmFybmV5Iik7 DQogICAgaWYoIWJhcm5leXN5bSkgZXhpdCgxKTsNCiAgICBleGl0KCgqYmFy bmV5c3ltKSgpICE9IDY5KTsNCn0NCg0KY29uZmlndXJlOjc0MjA6IGNoZWNr aW5nIHdoZXRoZXIgc3ltYm9scyBpbiB0aGUgZXhlY3V0YWJsZSBhcmUgYXZh aWxhYmxlDQpjb25maWd1cmU6NzQzMDogY2MgLXFsYW5nbHZsPWFuc2kgLWMg IC1PICAgY29uZnRlc3QxLmMgMT4mNQ0KY29uZmlndXJlOjc0MzE6IGxkIC1v IGNvbmZ0ZXN0MS5zbyAgLUcgLWJleHBhbGwgLWxjIGNvbmZ0ZXN0MS5vIC1s ZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KbGQ6IDA3MTEtMzI3IFdBUk5J Tkc6IEVudHJ5IHBvaW50IG5vdCBmb3VuZDogX19zdGFydA0KY29uZmlndXJl Ojc0ODM6IGNjIC1xbGFuZ2x2bD1hbnNpIC1vIGNvbmZ0ZXN0ICAtTyAgICBj b25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxtICAtbGMgMT4mNQ0KY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSA3NDM5ICJjb25maWd1 cmUiDQojaW5jbHVkZSAiY29uZmRlZnMuaCINCg0KI2lmZGVmIEhQVVhEWU5B TUlDDQojaW5jbHVkZSA8ZGwuaD4NCiNkZWZpbmUgUlRMRF9MQVpZIEJJTkRf REVGRVJSRUQNCiNkZWZpbmUgUlRMRF9HTE9CQUwgRFlOQU1JQ19QQVRIDQoN CmNoYXIgKnpzaF9nbF9zeW1fYWRkciA7DQoNCiNkZWZpbmUgZGxvcGVuKGZp bGUsbW9kZSkgKHZvaWQgKilzaGxfbG9hZCgoZmlsZSksIChtb2RlKSwgKGxv bmcpIDApDQojZGVmaW5lIGRsY2xvc2UoaGFuZGxlKSBzaGxfdW5sb2FkKChz aGxfdCkoaGFuZGxlKSkNCiNkZWZpbmUgZGxzeW0oaGFuZGxlLG5hbWUpICh6 c2hfZ2xfc3ltX2FkZHI9MCxzaGxfZmluZHN5bSgoc2hsX3QgKikmKGhhbmRs ZSksbmFtZSxUWVBFX1VOREVGSU5FRCwmenNoX2dsX3N5bV9hZGRyKSwgKHZv aWQgKil6c2hfZ2xfc3ltX2FkZHIpDQojZGVmaW5lIGRsZXJyb3IoKSAwDQoj ZWxzZQ0KI2lmZGVmIEhBVkVfRExGQ05fSA0KI2luY2x1ZGUgPGRsZmNuLmg+ DQojZWxzZQ0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPG5s aXN0Lmg+DQojaW5jbHVkZSA8bGluay5oPg0KI2VuZGlmDQojZW5kaWYNCiNp Zm5kZWYgUlRMRF9MQVpZDQojZGVmaW5lIFJUTERfTEFaWSAxDQojZW5kaWYN CiNpZm5kZWYgUlRMRF9HTE9CQUwNCiNkZWZpbmUgUlRMRF9HTE9CQUwgMA0K I2VuZGlmDQoNCm1haW4oKQ0Kew0KICAgIHZvaWQgKmhhbmRsZTsNCiAgICBp bnQgKCpiYXJuZXlzeW0pKCk7DQogICAgaGFuZGxlID0gZGxvcGVuKCIuL2Nv bmZ0ZXN0MS5zbyIsIFJUTERfTEFaWSB8IFJUTERfR0xPQkFMKTsNCiAgICBp ZighaGFuZGxlKSBleGl0KDEpOw0KICAgIGJhcm5leXN5bSA9IChpbnQgKCop KCkpIGRsc3ltKGhhbmRsZSwgImJhcm5leSIpOw0KICAgIGlmKCFiYXJuZXlz eW0pIGV4aXQoMSk7DQogICAgZXhpdCgoKmJhcm5leXN5bSkoKSAhPSA2OSk7 DQp9DQoNCmludCBmcmVkICgpIHsgcmV0dXJuIDQyOyB9DQoNCmNvbmZpZ3Vy ZTo3NTA5OiBjaGVja2luZyB3aGV0aGVyIGV4ZWN1dGFibGVzIGNhbiBiZSBz dHJpcHBlZA0KY29uZmlndXJlOjc1OTc6IGNoZWNraW5nIHdoZXRoZXIgbGli cmFyaWVzIGNhbiBiZSBzdHJpcHBlZA0KY29uZmlndXJlOjc2MDc6IGNjIC1x bGFuZ2x2bD1hbnNpIC1jICAtTyAgIGNvbmZ0ZXN0MS5jIDE+JjUNCmNvbmZp Z3VyZTo3NjA4OiBsZCAtbyBjb25mdGVzdDEuc28gIC1HIC1iZXhwYWxsIC1s YyAtcyBjb25mdGVzdDEubyAtbGRsIC1sY3Vyc2VzIC1sbSAgLWxjIDE+JjUN CmxkOiAwNzExLTMyNyBXQVJOSU5HOiBFbnRyeSBwb2ludCBub3QgZm91bmQ6 IF9fc3RhcnQNCmNvbmZpZ3VyZTo3NjU2OiBjYyAtcWxhbmdsdmw9YW5zaSAt byBjb25mdGVzdCAgLU8gICBjb25mdGVzdC5jIC1sZGwgLWxjdXJzZXMgLWxt ICAtbGMgMT4mNQ0K ---377332280-1532083168-992001027=:23818--