From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chandra Konduru Subject: =?utf-8?q?=5BPATCH_v3=5D_i-g-t=3A_Adding_test_case_to?= =?utf-8?q?_test_background_color=2E?= Date: Mon, 30 Mar 2015 13:44:32 -0700 Message-ID: <1427748272-19213-1-git-send-email-chandra.konduru@intel.com> References: <1425086752-5558-1-git-send-email-chandra.konduru@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 5035D6E386 for ; Mon, 30 Mar 2015 13:45:12 -0700 (PDT) In-Reply-To: <1425086752-5558-1-git-send-email-chandra.konduru@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogY2hhbmRyYSBrb25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgoKQWRkaW5n IGktZy10IHRlc3QgY2FzZSB0byB0ZXN0IGRpc3BsYXkgY3J0YyBiYWNrZ3JvdW5kIGNvbG9yLgoK djI6Ci0gQWRkZWQgSUdUX1RFU1RfREVTQ1JJUFRJT04oKSAoVGhvbWFzIFdvb2QpCi0gQWRkZWQg dG8gLmdpdGlnbm9yZSAoVGhvbWFzIFdvb2QpCi0gQWRkZWQgYWRkaXRpb25hbCBkZXRhaWxzIHRv IGZ1bmN0aW9uIGhlYWRlciAoVGhvbWFzIFdvb2QpCi0gU2ltcGxpZmllZCBpZ3RfbWFpbiAoVGhv bWFzIFdvb2QpCgp2MzoKLSByZWJhc2VkIHRvIGxhdGVzdCBtYXN0ZXIgKG1lKQotIHRvb2sgc2xl ZXAgY2FsbHMgb3V0IChEYW5pZWwpCi0gdXNlIG5ldyB0aWxlZCB0eXBlcyB3aGVuIGNhbGxpbmcg aWd0X2NyZWF0ZV9mYiAobWUpCgpTaWduZWQtb2ZmLWJ5OiBjaGFuZHJhIGtvbmR1cnUgPGNoYW5k cmEua29uZHVydUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDYxICsrKysrKysrKysrKwogbGliL2lndF9rbXMuaCAgICAgICAgICAgICAgICAgICAg IHwgICA0ICsKIHRlc3RzLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgICB8ICAgMSArCiB0ZXN0 cy9BbmRyb2lkLm1rICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvTWFrZWZpbGUuc291 cmNlcyAgICAgICAgICAgIHwgICAxICsKIHRlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3Iu YyB8IDE5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAyNjMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19j cnRjX2JhY2tncm91bmRfY29sb3IuYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIv aWd0X2ttcy5jCmluZGV4IDljMTMxZjAuLjljNDZlMTggMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21z LmMKKysrIGIvbGliL2lndF9rbXMuYwpAQCAtOTQwLDYgKzk0MCwyMiBAQCBpZ3RfcGxhbmVfc2V0 X3Byb3BlcnR5KGlndF9wbGFuZV90ICpwbGFuZSwgdWludDMyX3QgcHJvcF9pZCwgdWludDY0X3Qg dmFsdWUpCiAJCQkJIERSTV9NT0RFX09CSkVDVF9QTEFORSwgcHJvcF9pZCwgdmFsdWUpOwogfQog CitzdGF0aWMgYm9vbAorZ2V0X2NydGNfcHJvcGVydHkoaW50IGRybV9mZCwgdWludDMyX3QgY3J0 Y19pZCwgY29uc3QgY2hhciAqbmFtZSwKKwkJICAgdWludDMyX3QgKnByb3BfaWQgLyogb3V0ICov LCB1aW50NjRfdCAqdmFsdWUgLyogb3V0ICovLAorCQkgICBkcm1Nb2RlUHJvcGVydHlQdHIgKnBy b3AgLyogb3V0ICovKQoreworCXJldHVybiBrbXN0ZXN0X2dldF9wcm9wZXJ0eShkcm1fZmQsIGNy dGNfaWQsIERSTV9NT0RFX09CSkVDVF9DUlRDLAorCQkJCSAgICBuYW1lLCBwcm9wX2lkLCB2YWx1 ZSwgcHJvcCk7Cit9CisKK3N0YXRpYyB2b2lkCitpZ3RfY3J0Y19zZXRfcHJvcGVydHkoaWd0X291 dHB1dF90ICpvdXRwdXQsIHVpbnQzMl90IHByb3BfaWQsIHVpbnQ2NF90IHZhbHVlKQoreworCWRy bU1vZGVPYmplY3RTZXRQcm9wZXJ0eShvdXRwdXQtPmRpc3BsYXktPmRybV9mZCwKKwkJb3V0cHV0 LT5jb25maWcuY3J0Yy0+Y3J0Y19pZCwgRFJNX01PREVfT0JKRUNUX0NSVEMsIHByb3BfaWQsIHZh bHVlKTsKK30KKwogLyoKICAqIFdhbGsgYSBwbGFuZSdzIHByb3BlcnR5IGxpc3QgdG8gZGV0ZXJt aW5lIGl0cyB0eXBlLiAgSWYgd2UgZG9uJ3QKICAqIGZpbmQgYSB0eXBlIHByb3BlcnR5LCB0aGVu IHRoZSBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IHVuaXZlcnNhbApAQCAtMTA5Nyw2ICsxMTEzLDcg QEAgdm9pZCBpZ3RfZGlzcGxheV9pbml0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGludCBkcm1f ZmQpCiAJaWd0X2Fzc2VydChkaXNwbGF5LT5vdXRwdXRzKTsKIAogCWZvciAoaSA9IDA7IGkgPCBk aXNwbGF5LT5uX291dHB1dHM7IGkrKykgeworCQlpbnQgajsKIAkJaWd0X291dHB1dF90ICpvdXRw dXQgPSAmZGlzcGxheS0+b3V0cHV0c1tpXTsKIAogCQkvKgpAQCAtMTEwOCw2ICsxMTI1LDE5IEBA IHZvaWQgaWd0X2Rpc3BsYXlfaW5pdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2Zk KQogCQlvdXRwdXQtPmRpc3BsYXkgPSBkaXNwbGF5OwogCiAJCWlndF9vdXRwdXRfcmVmcmVzaChv dXRwdXQpOworCisJCWZvciAoaiA9IDA7IGogPCBkaXNwbGF5LT5uX3BpcGVzOyBqKyspIHsKKwkJ CXVpbnQ2NF90IHByb3BfdmFsdWU7CisJCQlpZ3RfcGlwZV90ICpwaXBlID0gJmRpc3BsYXktPnBp cGVzW2pdOworCQkJaWYgKG91dHB1dC0+Y29uZmlnLmNydGMpIHsKKwkJCQlnZXRfY3J0Y19wcm9w ZXJ0eShkaXNwbGF5LT5kcm1fZmQsIG91dHB1dC0+Y29uZmlnLmNydGMtPmNydGNfaWQsCisJCQkJ CQkgICAiYmFja2dyb3VuZF9jb2xvciIsCisJCQkJCQkgICAmcGlwZS0+YmFja2dyb3VuZF9wcm9w ZXJ0eSwKKwkJCQkJCSAgICZwcm9wX3ZhbHVlLAorCQkJCQkJICAgTlVMTCk7CisJCQkJcGlwZS0+ YmFja2dyb3VuZCA9ICh1aW50MzJfdClwcm9wX3ZhbHVlOworCQkJfQorCQl9CiAJfQogCiAJZHJt TW9kZUZyZWVQbGFuZVJlc291cmNlcyhwbGFuZV9yZXNvdXJjZXMpOwpAQCAtMTUyNyw2ICsxNTU3 LDEzIEBAIHN0YXRpYyBpbnQgaWd0X291dHB1dF9jb21taXQoaWd0X291dHB1dF90ICpvdXRwdXQs CiAKIAlwaXBlID0gaWd0X291dHB1dF9nZXRfZHJpdmluZ19waXBlKG91dHB1dCk7CiAKKwlpZiAo cGlwZS0+YmFja2dyb3VuZF9jaGFuZ2VkKSB7CisJCWlndF9jcnRjX3NldF9wcm9wZXJ0eShvdXRw dXQsIHBpcGUtPmJhY2tncm91bmRfcHJvcGVydHksCisJCQlwaXBlLT5iYWNrZ3JvdW5kKTsKKwor CQlwaXBlLT5iYWNrZ3JvdW5kX2NoYW5nZWQgPSBmYWxzZTsKKwl9CisKIAlmb3IgKGkgPSAwOyBp IDwgcGlwZS0+bl9wbGFuZXM7IGkrKykgewogCQlpZ3RfcGxhbmVfdCAqcGxhbmUgPSAmcGlwZS0+ cGxhbmVzW2ldOwogCkBAIC0xNzc5LDYgKzE4MTYsMzAgQEAgdm9pZCBpZ3RfcGxhbmVfc2V0X3Jv dGF0aW9uKGlndF9wbGFuZV90ICpwbGFuZSwgaWd0X3JvdGF0aW9uX3Qgcm90YXRpb24pCiAJcGxh bmUtPnJvdGF0aW9uX2NoYW5nZWQgPSB0cnVlOwogfQogCisvKioKKyAqIGlndF9jcnRjX3NldF9i YWNrZ3JvdW5kOgorICogQHBpcGU6IHBpcGUgcG9pbnRlciB0byB3aGljaCBiYWNrZ3JvdW5kIGNv bG9yIHRvIGJlIHNldAorICogQGJhY2tncm91bmQ6IGJhY2tncm91bmQgY29sb3IgdmFsdWUgaW4g QkdSIDE2YnBjCisgKgorICogU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIGZvciByZXF1ZXN0ZWQgcGlw ZS4gQ29sb3IgdmFsdWUgcHJvdmlkZWQgaGVyZQorICogd2lsbCBiZSBhY3R1YWxseSBzdWJtaXR0 ZWQgYXQgb3V0cHV0IGNvbW1pdCB0aW1lIHZpYSAiYmFja2dyb3VuZF9jb2xvciIKKyAqIHByb3Bl cnR5LgorICogRm9yIGV4YW1wbGUgdG8gZ2V0IHJlZCBhcyBiYWNrZ3JvdW5kLCBzZXQgYmFja2dy b3VuZCA9IDB4MDAwMDAwMDBGRkZGLgorICovCit2b2lkIGlndF9jcnRjX3NldF9iYWNrZ3JvdW5k KGlndF9waXBlX3QgKnBpcGUsIHVpbnQ2NF90IGJhY2tncm91bmQpCit7CisJaWd0X2Rpc3BsYXlf dCAqZGlzcGxheSA9IHBpcGUtPmRpc3BsYXk7CisKKwlMT0coZGlzcGxheSwgIiVzLiVkOiBjcnRj X3NldF9iYWNrZ3JvdW5kKCVsdSlcbiIsCisJICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUtPnBp cGUpLAorCSAgICBwaXBlLT5waXBlLCBiYWNrZ3JvdW5kKTsKKworCXBpcGUtPmJhY2tncm91bmQg PSBiYWNrZ3JvdW5kOworCisJcGlwZS0+YmFja2dyb3VuZF9jaGFuZ2VkID0gdHJ1ZTsKK30KKwor CiB2b2lkIGlndF93YWl0X2Zvcl92YmxhbmsoaW50IGRybV9mZCwgZW51bSBwaXBlIHBpcGUpCiB7 CiAJZHJtVkJsYW5rIHdhaXRfdmJsOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9p Z3Rfa21zLmgKaW5kZXggNTY1ZGYxNC4uODRlODQ1NiAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMu aAorKysgYi9saWIvaWd0X2ttcy5oCkBAIC0yMDcsNiArMjA3LDkgQEAgc3RydWN0IGlndF9waXBl IHsKICNkZWZpbmUgSUdUX01BWF9QTEFORVMJNAogCWludCBuX3BsYW5lczsKIAlpZ3RfcGxhbmVf dCBwbGFuZXNbSUdUX01BWF9QTEFORVNdOworCXVpbnQ2NF90IGJhY2tncm91bmQ7IC8qIEJhY2tn cm91bmQgY29sb3IgTVNCIEJHUiAxNmJwYyBMU0IgKi8KKwl1aW50MzJfdCBiYWNrZ3JvdW5kX2No YW5nZWQgOiAxOworCXVpbnQzMl90IGJhY2tncm91bmRfcHJvcGVydHk7CiB9OwogCiB0eXBlZGVm IHN0cnVjdCB7CkBAIC0yNTIsNiArMjU1LDcgQEAgdm9pZCBpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KGlndF9wbGFuZV90ICpwbGFuZSwgaW50IHgsIGludCB5KTsKIHZvaWQgaWd0X3BsYW5lX3NldF9z aXplKGlndF9wbGFuZV90ICpwbGFuZSwgaW50IHcsIGludCBoKTsKIHZvaWQgaWd0X3BsYW5lX3Nl dF9wYW5uaW5nKGlndF9wbGFuZV90ICpwbGFuZSwgaW50IHgsIGludCB5KTsKIHZvaWQgaWd0X3Bs YW5lX3NldF9yb3RhdGlvbihpZ3RfcGxhbmVfdCAqcGxhbmUsIGlndF9yb3RhdGlvbl90IHJvdGF0 aW9uKTsKK3ZvaWQgaWd0X2NydGNfc2V0X2JhY2tncm91bmQoaWd0X3BpcGVfdCAqcGlwZSwgdWlu dDY0X3QgYmFja2dyb3VuZCk7CiAKIHZvaWQgaWd0X3dhaXRfZm9yX3ZibGFuayhpbnQgZHJtX2Zk LCBlbnVtIHBpcGUgcGlwZSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzLy5naXRpZ25vcmUgYi90ZXN0 cy8uZ2l0aWdub3JlCmluZGV4IDQwMmUwNjIuLjBmMDhjZTAgMTAwNjQ0Ci0tLSBhL3Rlc3RzLy5n aXRpZ25vcmUKKysrIGIvdGVzdHMvLmdpdGlnbm9yZQpAQCAtMTQxLDYgKzE0MSw3IEBAIGttc19z ZXRtb2RlCiBrbXNfc2lua19jcmNfYmFzaWMKIGttc191bml2ZXJzYWxfcGxhbmUKIGttc192Ymxh bmsKK2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IKIG11bHRpLXRlc3RzLnR4dAogcG1fbHBzcAog cG1fcmM2X3Jlc2lkZW5jeQpkaWZmIC0tZ2l0IGEvdGVzdHMvQW5kcm9pZC5tayBiL3Rlc3RzL0Fu ZHJvaWQubWsKaW5kZXggODE0Yjg0Ni4uOTZhMzJiOSAxMDA2NDQKLS0tIGEvdGVzdHMvQW5kcm9p ZC5taworKysgYi90ZXN0cy9BbmRyb2lkLm1rCkBAIC03NSw2ICs3NSw3IEBAIGVsc2UKICAgICBr bXNfcm90YXRpb25fY3JjIFwKICAgICBrbXNfZm9yY2VfY29ubmVjdG9yIFwKICAgICBrbXNfZmxp cF9ldmVudF9sZWFrIFwKKyAgICBrbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yIFwKICAgICBrbXNf cHdyaXRlX2NyYwogICAgIElHVF9MT0NBTF9DRkxBR1MgKz0gLURBTkRST0lEX0hBU19DQUlSTz0w CiBlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKaW5kZXggYTE2NTk3OC4uNTIzNWI1ZiAxMDA2NDQKLS0tIGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC04Miw2ICs4Miw3 IEBAIFRFU1RTX3Byb2dzX00gPSBcCiAJa21zX3NldG1vZGUgXAogCWttc191bml2ZXJzYWxfcGxh bmUgXAogCWttc192YmxhbmsgXAorCWttc19jcnRjX2JhY2tncm91bmRfY29sb3IgXAogCXBtX2xw c3AgXAogCXBtX3JwbSBcCiAJcG1fcnBzIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jcnRjX2Jh Y2tncm91bmRfY29sb3IuYyBiL3Rlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjI2NDExCi0tLSAvZGV2L251bGwKKysr IGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCkBAIC0wLDAgKzEsMTk1IEBACisv KgorICogQ29weXJpZ2h0IMKpIDIwMTMsMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgor ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUg PG1hdGguaD4KKworI2luY2x1ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJpZ3RfZGVidWdmcy5o IgorI2luY2x1ZGUgImlndF9rbXMuaCIKKyNpbmNsdWRlICJpZ3RfY29yZS5oIgorCitJR1RfVEVT VF9ERVNDUklQVElPTigiVGVzdCBjcnRjIGJhY2tncm91bmQgY29sb3IgZmVhdHVyZSIpOworCit0 eXBlZGVmIHN0cnVjdCB7CisJaW50IGdmeF9mZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJ c3RydWN0IGlndF9mYiBmYjsKKwlpZ3RfY3JjX3QgcmVmX2NyYzsKKwlpZ3RfcGlwZV9jcmNfdCAq cGlwZV9jcmM7Cit9IGRhdGFfdDsKKworI2RlZmluZSBCTEFDSyAgICAgIDB4MDAwMDAwICAgICAg ICAgICAvKiBCR1IgOGJwYyAqLworI2RlZmluZSBDWUFOICAgICAgIDB4RkZGRjAwICAgICAgICAg ICAvKiBCR1IgOGJwYyAqLworI2RlZmluZSBQVVJQTEUgICAgIDB4RkYwMEZGICAgICAgICAgICAv KiBCR1IgOGJwYyAqLworI2RlZmluZSBXSElURSAgICAgIDB4RkZGRkZGICAgICAgICAgICAvKiBC R1IgOGJwYyAqLworCisjZGVmaW5lIEJMQUNLNjQgICAgMHgwMDAwMDAwMDAwMDAgICAgIC8qIEJH UiAxNmJwYyAqLworI2RlZmluZSBDWUFONjQgICAgIDB4RkZGRkZGRkYwMDAwICAgICAvKiBCR1Ig MTZicGMgKi8KKyNkZWZpbmUgUFVSUExFNjQgICAweEZGRkYwMDAwRkZGRiAgICAgLyogQkdSIDE2 YnBjICovCisjZGVmaW5lIFlFTExPVzY0ICAgMHgwMDAwRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJw YyAqLworI2RlZmluZSBXSElURTY0ICAgIDB4RkZGRkZGRkZGRkZGICAgICAvKiBCR1IgMTZicGMg Ki8KKyNkZWZpbmUgUkVENjQgICAgICAweDAwMDAwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICov CisjZGVmaW5lIEdSRUVONjQgICAgMHgwMDAwRkZGRjAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwor I2RlZmluZSBCTFVFNjQgICAgIDB4RkZGRjAwMDAwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KKwor c3RhdGljIHZvaWQKK3BhaW50X2JhY2tncm91bmQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2Zi ICpmYiwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAorCQl1aW50MzJfdCBiYWNrZ3JvdW5kLCBkb3Vi bGUgYWxwaGEpCit7CisJY2Fpcm9fdCAqY3I7CisJaW50IHcsIGg7CisJZG91YmxlIHIsIGcsIGI7 CisKKwl3ID0gbW9kZS0+aGRpc3BsYXk7CisJaCA9IG1vZGUtPnZkaXNwbGF5OworCisJY3IgPSBp Z3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7CisKKwkvKiBQYWludCB3 aXRoIGJhY2tncm91bmQgY29sb3IgKi8KKwlyID0gKGRvdWJsZSkgKGJhY2tncm91bmQgJiAweEZG KSAvIDI1NS4wOworCWcgPSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAweEZGMDApID4+IDgpIC8g MjU1LjA7CisJYiA9IChkb3VibGUpICgoYmFja2dyb3VuZCAmIDB4RkYwMDAwKSA+PiAxNikgLyAy NTUuMDsKKwlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIHcsIGgsIHIsIGcsIGIsIGFs cGhhKTsKKworCWNhaXJvX2Rlc3Ryb3koY3IpOworfQorCitzdGF0aWMgdm9pZCBwcmVwYXJlX2Ny dGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUsCisJ CQlpZ3RfcGxhbmVfdCAqcGxhbmUsIGludCBvcGFxdWVfYnVmZmVyLCBpbnQgcGxhbmVfY29sb3Is CisJCQl1aW50NjRfdCBwaXBlX2JhY2tncm91bmRfY29sb3IpCit7CisJZHJtTW9kZU1vZGVJbmZv ICptb2RlOworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpbnQg ZmJfaWQ7CisJZG91YmxlIGFscGhhOworCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBp cGUpOworCisJLyogY3JlYXRlIHRoZSBwaXBlX2NyYyBvYmplY3QgZm9yIHRoaXMgcGlwZSAqLwor CWlndF9waXBlX2NyY19mcmVlKGRhdGEtPnBpcGVfY3JjKTsKKwlkYXRhLT5waXBlX2NyYyA9IGln dF9waXBlX2NyY19uZXcocGlwZSwgSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOworCisJbW9k ZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKworCWZiX2lkID0gaWd0X2NyZWF0ZV9m YihkYXRhLT5nZnhfZmQsCisJCQltb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQlE Uk1fRk9STUFUX1hSR0I4ODg4LAorCQkJTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgLyogdGls ZWQgKi8KKwkJCSZkYXRhLT5mYik7CisJaWd0X2Fzc2VydChmYl9pZCk7CisKKwkvKiBUbyBtYWtl IEZCIHBpeGVsIHdpbiB3aXRoIGJhY2tncm91bmQgY29sb3IsIHNldCBhbHBoYSBhcyBmdWxsIG9w YXF1ZSAqLworCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBwaXBlX2JhY2tn cm91bmRfY29sb3IpOworCWlmIChvcGFxdWVfYnVmZmVyKQorCQlhbHBoYSA9IDEuMDsgICAgLyog YWxwaGEgMSBpcyBmdWxseSBvcHF1ZSAqLworCWVsc2UKKwkJYWxwaGEgPSAwLjA7ICAgIC8qIGFs cGhhIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgKi8KKwlwYWludF9iYWNrZ3JvdW5kKGRhdGEsICZk YXRhLT5mYiwgbW9kZSwgcGxhbmVfY29sb3IsIGFscGhhKTsKKworCWlndF9wbGFuZV9zZXRfZmIo cGxhbmUsICZkYXRhLT5mYik7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRf VU5JVkVSU0FMKTsKK30KKworc3RhdGljIHZvaWQgY2xlYW51cF9jcnRjKGRhdGFfdCAqZGF0YSwg aWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSkKK3sKKwlpZ3RfZGlzcGxh eV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisKKwlpZ3RfcGlwZV9jcmNfZnJlZShkYXRh LT5waXBlX2NyYyk7CisJZGF0YS0+cGlwZV9jcmMgPSBOVUxMOworCisJaWd0X3JlbW92ZV9mYihk YXRhLT5nZnhfZmQsICZkYXRhLT5mYik7CisKKwlpZ3RfY3J0Y19zZXRfYmFja2dyb3VuZChwbGFu ZS0+cGlwZSwgQkxBQ0s2NCk7CisJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVMTCk7CisJaWd0 X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKKworCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfY3J0 Y19iYWNrZ3JvdW5kKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZW51bSBwaXBlIHBpcGU7 CisJaW50IHZhbGlkX3Rlc3RzID0gMDsKKworCWlndF9yZXF1aXJlKGRhdGEtPmRpc3BsYXkuaGFz X3VuaXZlcnNhbF9wbGFuZXMpOworCisJZm9yX2VhY2hfY29ubmVjdGVkX291dHB1dChkaXNwbGF5 LCBvdXRwdXQpIHsKKwkJaWd0X3BsYW5lX3QgKnBsYW5lOworCisJCXBpcGUgPSBvdXRwdXQtPmNv bmZpZy5waXBlOworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisKKwkJcGxh bmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV9QUklNQVJZKTsKKwkJ aWd0X3JlcXVpcmUocGxhbmUtPnBpcGUtPmJhY2tncm91bmRfcHJvcGVydHkpOworCisJCXByZXBh cmVfY3J0YyhkYXRhLCBvdXRwdXQsIHBpcGUsIHBsYW5lLCAxLCBQVVJQTEUsIEJMQUNLNjQpOwor CisJCS8qIE5vdyBzZXQgYmFja2dyb3VuZCB3aXRob3V0IHVzaW5nIGEgcGxhbmUsIGkuZS4sCisJ CSAqIERpc2FibGUgdGhlIHBsYW5lIHRvIGxldCBodyBiYWNrZ3JvdW5kIGNvbG9yIHdpbiBibGVu ZC4gKi8KKwkJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVMTCk7CisJCWlndF9jcnRjX3NldF9i YWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBQVVJQTEU2NCk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIo ZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJLyogVHJ5IGZldyBvdGhlciBiYWNrZ3Jv dW5kIGNvbG9ycyAqLworCQlpZ3RfY3J0Y19zZXRfYmFja2dyb3VuZChwbGFuZS0+cGlwZSwgQ1lB TjY0KTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsK KworCQlpZ3RfY3J0Y19zZXRfYmFja2dyb3VuZChwbGFuZS0+cGlwZSwgWUVMTE9XNjQpOworCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCisJCWlndF9j cnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBSRUQ2NCk7CisJCWlndF9kaXNwbGF5X2Nv bW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJaWd0X2NydGNfc2V0X2JhY2tn cm91bmQocGxhbmUtPnBpcGUsIEdSRUVONjQpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3Bs YXksIENPTU1JVF9VTklWRVJTQUwpOworCisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5l LT5waXBlLCBCTFVFNjQpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9V TklWRVJTQUwpOworCisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBXSElU RTY0KTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsK KworCQl2YWxpZF90ZXN0cysrOworCQljbGVhbnVwX2NydGMoZGF0YSwgb3V0cHV0LCBwbGFuZSk7 CisJfQorCWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2YWxpZCBjcnRjL2Nvbm5lY3Rv ciBjb21iaW5hdGlvbnMgZm91bmRcbiIpOworfQorCitpZ3RfbWFpbgoreworCWRhdGFfdCBkYXRh ID0ge307CisKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlkYXRhLmdmeF9mZCA9IGRy bV9vcGVuX2FueSgpOworCWlndF9yZXF1aXJlX3BpcGVfY3JjKCk7CisJaWd0X2Rpc3BsYXlfaW5p dCgmZGF0YS5kaXNwbGF5LCBkYXRhLmdmeF9mZCk7CisKKwlpZ3Rfc3VidGVzdCgicGlwZS1iYWNr Z3JvdW5kIikKKwkJdGVzdF9jcnRjX2JhY2tncm91bmQoJmRhdGEpOworCisJaWd0X2Rpc3BsYXlf ZmluaSgmZGF0YS5kaXNwbGF5KTsKK30KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=